C语言博客作业--函数
题目1: 400~499 中4出现的次数:
1.本题PTA提交列表
2. 设计思路
- 先创建一个函数int fun(int x)
- 定义变量count用于登记数字中含4的次数,a用于求数字的各个位数的大小
- count赋值于0;
- do{ //这个循环结构用于判断数字4出现的次数
a=x%10;
如果(a等于4)
count++;
x=x/10;
}直到(x不等于0); - 返回值给主函数
3.本题调试过程碰到问题及PTA提交列表情况说明。
- 本题调试过程中发现无论x取何值,都经过count++,后来在count++附近发现我的(a=0)错误
题目2: 使用函数输出一个整数的逆序数
1.本题PTA提交列表
2. 设计思路
- 定义一个函数int reverse( int number )
- 定义变量number1的值等于number的绝对值,flag用于正负号,count用于数字位数,i,j 用于循环
- 如果number为正 ,则number1=number;
- 如果number<0) number转化成他的绝对值 flag=-1*flag;
- do{ //求数字的几位数
number=number/10;
count++; //用于记录数字的几位数
}直到(number不等于0); - for(i=1;i<=count;i++){ //这循环结构用于求逆序数
a=number1%10; //求该数的各个位数的大小,求余
for(j=1;j<count+1-i;j++){ //用于将数字位数本末倒置
a=a*10;
}
sum=sum+a; //用于求本末倒置的数字的和
number1=number1/10;
} - 返回sum的值
3.本题调试过程碰到问题及PTA提交列表情况说明。
- 本题刚开始没有设一个变量用来存储原先number的值,导致无论输入多少结果都为0
经过调试,发现number的值在进入for循环时已为0
题目3:使用函数输出水仙花数
1.本题PTA提交列表
2. 设计思路
- 创建一个函数int narcissistic( int number )
- 定义变量 i,n等于0,sum等于0,count等于0(用于求数字有几位);
- n等于number
- 如果n不等于0重复以下步骤{ //求输入值有几位数
count++;
n/=10;
} - 如果n不等于0重复以下步骤 { //用于求每个位上的数字的N次幂之和
i等于n%10;
sum 等于sum+ (int)pow(i, count);
n/=10;
} - 判断sum 是否等于number //判断sum是否等于number,来确定返回值
- 创建void PrintN( int m, int n )
- 定义变量 i;
for(i=m+1;i<n;i++) //调用narcissistic(),求m,n
如果(narcissistic(i)==1)
输出结果
3.本题调试过程碰到问题及PTA提交列表情况说明
- 本题在Dev上 输出结果和答案相符,在pta上部分正确,经过多次在Dev上输入不同的值,发现i<=n错误。
二、同学代码结对互评
我的代码
乐国的代码
- 我们两个的代码思路一样,总体上感觉都差不多。但是乐国的代码中采用#include<math.h>,让代码量减少,比较简洁。
,然而他没有注释,读起来比较费力。
三、截图本周题目集的PTA最后排名。
四、本周学习总结
1.你学会了什么?
1.1 C语言哪些数据类型?
- C语言的数据类型有刚开始的int,double,float,新学会的有short,long,有字符和无字符
1.2 字符型数据需要注意地方?
- 字符型数据应该注意输入字符数字的ASC||码与数学上的数字不一样
1.3 自增自减运算符?
- 差不多已经掌握,应该注意++a与a++的区别,前面结果已经加一了,后面还没
1.4 运算符优先级?
- 对于运算符优先级我现在目前脑海呈现的是单目,三目运算符是从右到左,对于优先级的就需要继续练习才可以完全记住
1.5 C语言哪些表达式?课堂派哪里做错,做错的请在这里分析原因?
- 算数表达式,自增自减表达式,逗号表达式,逻辑表达式,
- 课堂派中第2.4.10题做错误,错误在于对于自增,逻辑运算没有理解清楚
1.6 其他内容?
- 学会了多个if语句程序都要判断的这个小知识点,学会了a和b值互相转换的高效率代码
2.本周的内容,你还不会什么?
- 其实我还不会的就是空格问题的解决思路,对于2进制的不是很清楚
对于对于优先级不是很熟悉,尤其是这星期刚学的的一些新的运算符。
3.循环结构考试总结
1.哪题做错了,怎么改?
- 第4,5题做错了。
- 下回我应该认真读完题目,充分理解 题目的意思和隐含条件,然后再纸上写一个伪代码。
其次在学业上应该多花时间在pta的题目上
2.考试结果满意么,怎么改进?
- 不满意。
- 对于以后题目做错的在pta上显示的要理解pta显示错误的意思。
其次多花时间在C语言上,还有注重时间,以及写代码的效率应该提高。
3.其他总结。
- 在这次考试上我认为我C语言的基础不是很扎实,对于一些循环结构的运用的不是很熟练
- 其次就是我解题的效率不是很高,应该多做题
- 还有一个总结是只要有效率的多花时间在C语言上,成绩就会提高。