您的位置:首页 > 编程语言 > C语言/C++

c语言第五次博客作业---函数

2017-11-18 23:07 239 查看

一丶PTA实验作业

题目1:使用函数判断完全平方数

(1).PTA提交列表



(2). 设计思路

1.第一步:定义两个浮点型变量 number,r;

2.第二步:将开平方的n赋予number;

3.第三步:r=n/number;

4.第四步:如果r=number,返回1;否则返回0;

5.第五步:如果n为0,返回1;

(3).本题调试过程碰到问题及解决办法

问题:


在n=0这个测试点时代码通不过去

解决办法:将0当作特例写出来,当n为0时直接返回1;

题目2:使用函数输出一个整数的逆序数

(1).PTA提交列表



(2). 设计思路

1.第一步:定义两个整型变量 r,a;

2.第二步:若number不等于0,进入第三步,否则进入第六步;

3.第三步:r=number%10;

4.第四步:a=a*10+r;

5.第五步:number=number/10;返回第二步;

6.第六步:返回a;

(3).本题调试过程碰到问题及解决办法

问题:



发现编译后无法运行

解决办法:





调试后发现进入了死循环,number的值不改变,仔细阅读后发现number的数值未除十导致number值始终不改变

题目3:使用函数输出水仙花数

(1).PTA提交列表



(2). 设计思路

1.第一步:定义整型变量 r,i,a,sum,n,b,j,c;

2.第二步:将number的值赋予b,c

3.第三步:while(number不等于0){

4.第四步:r=number/10;

5.第五步:将r的值赋予number;

6.第六步:n=n+1;}

7.第七步:for(i=1;i小于等于n;i=i+1){

8.第八步:j=b%10;

9.第九步:b=b/10;

10.第十步:sum=sum+j的n次方;

11.第十一步:如果sum等于c,则返回1,否则返回0;

12.第十二步:定义另一个函数Print( int m, int n )

13.第十三步:for(j=m+1;j<n;j++){

14.第十四步:如果j满足第一步到第十二步,输出j

(3).本题调试过程碰到问题及解决办法

问题:



输入数据后无法运行

解决办法:



阅读后发现循环内变量写错,询问舍友后由于第二个函数需要用第一个函数进行判断,可以在第二个函数内调用第一个函数,这样就可以减少定义变量照成冲突

二、同学代码结对互评

1.同学互评照片



2.我的代码、互评同学代码截图

我的代码:



同学代码:



3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。

不同在于他的代码是用多个循环去控制数据做出递增递减,而我是用求余在10累加,这样每次10就能使最高位不断向前推

他的优势是思路很清晰,而且容易懂,我的做法比较特别,但是很精简,但是我犯了一个错误,a没有给他一个初始值,这是他帮我检查的一个错误,还的多练练自己的找错能力,尽量使代码严谨一些

三、截图本周题目集的PTA最后排名



四、本周学习总结

1.你学会了什么?

(1).浮点型,字符型

(2).字符型可以转换成ASCII码,用+-1可以让字符进行转化

(3).前缀递增与后缀递增的区别

2.本周的内容,你还不会什么?

(1).关系表达式还不是很理解

(2).移位运算以及符合运算符表达式

(3).逻辑表达式

3.循环结构考试总结

做错题目:7—2

对于输出图形的题目还不是很清楚,刚看到题目时脑子一片空白

一步一步思考后逐渐将代码写出并完善但是在pta上还是过不去

错误代码

int main(void)
{
char c,i,j;
int n;
scanf("%d",&n);
c='A';
for(i=n;i>=0;i--){
for(j=1;j<=n;j++){
printf("%c ",c);
c=c+1;
}
n--;
printf("\n");
}
return 0;


再循环内的控制条件未想透彻,导致格式一直错误,最终询问老师才发现,找错改错能力还不足
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: