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语言上,成绩就会提高。
原文地址:https://www.cnblogs.com/guobaoqing/p/7855999.html