作业要求:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2360
第十一周------第六次作业
6-1 求1到100的和
本题要求编写程序,计算表达式 1 + 2 + 3 + ... + 100 的值。
代码:
#include <stdio.h> int main(void) { int i,sum; sum = 0; for(i=1;i<=100;i++){ sum = sum+i; } printf("sum = %d\n",sum); system("pause"); return 0; }
解题思路:
1、定义两个整型变量i,sum;
2、判断循环初值以及循环结束条件;
3、打印输出sum;
流程图:
调试及运行:
调试过程未发现错误
运行结果正确
第十二周------ 第九次作业
求整数的位数及各位数字之和
对于给定的正整数N,求它的位数及其各位数字之和。
代码:
#include <stdio.h> int main(void) { int digit,number,sum,count; scanf("%d",&number); count = 0; if(number<0){ number=-number; } do{ digit = number % 10; number = number / 10; count ++; sum=sum+digit; } while(number!=0); printf("%d %d\n",count,sum); return 0; }
解题思路:
1、定义4个整型变量,给其中一个变量number的输入初值;
2、根据题意设置循环结束条件及运算公式(求整数的各位数字之和则需要使用求余运算);
3、输出位数count,各位数字之和sum;
流程图:
调试过程及问题:
正确运行的结果应该是输出2和7,而实际却输出了2和-7;
调试过程如下:
调试之后我发现当number<0时,应先在进入循环之前使用if语句保证number为正数;
正确运行过程及调试如下:
第十三周------第七次作业
7-3 统计学生平均成绩与及格人数
本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。
代码:
#include <stdio.h> int main(void) { int N,sum,count,i,grade; double average=0; sum = 0; count = 0; scanf("%d",&N); for(i=1;i<=N;i++){ scanf("%d",&grade); sum = sum+grade; if(grade>=60){ count++;} } if(N>0) printf("average = %.1f\n",sum*1.0/N); else printf("average = %.1f\n",sum*1.0); printf("count = %d\n",count); system("pause"); return 0; }
解题思路:
1、定义解题所需变量;
2、根据题意设置循环结束条件;
3、使用if语句加一个计数器统计及格人数;
4、输出的average要求是浮点型,而sum和N都是整型,因此最后输出时需要sum*1.0/N;
流程图:
调试过程及问题:
第一次运行时没有考虑到N=0的情况,N=0时N不能作为分母,因此average无法计算出,导致部分正确;
调试过程如下:
调试发现错误后,我使用if-else语句把N=0和N>0两种情况进行讨论;
再次进行调试:
运行过程如下:
运行结果都正确;
个人总结:这几周的主要学习各种各样的循环语句,这是一个难点(在哪一步设置循环,循环结束的条件是什么,嵌套循环怎么使用等等),但同时也是一个重点,因为在以后的学习中接触的最多的就是循环,经过这几周课堂上的学习,我弄懂了for循环,while循环与do-while循环的区别与使用,同时也感受到c语言的精深。
代码行数及博客字数:
已评论博客链接:
https://www.cnblogs.com/chumengGTRlhz/p/9991154.html