分支结构中题目7-8计算个人所得税:
1.实验代码:
# include <stdio.h> # include <math.h> int main() { float s,y; scanf("%f",&s); if (s <= 1600) { y = 0; } else if ((s > 1600)&&(s<=2500)){ y = (s - 1600) * 0.05; } else if ((s > 2500)&&(s<=3500)){ y = (s - 1600) * 0.1; } else if ((s > 3500)&&(s<=4500)){ y = (s - 1600) * 0.15; } else{ y =(s - 1600) * 0.2; } printf("%.2f",y); return 0; }
2 设计思路:用else-if语句将多种情况分开,需调用数学函数<math.h>
第一步:取两个浮点数s(薪水)y(个人所得税),输入s。
第二步:利用if 语句判断是否满足 s<=1600的情况,若满足执行该语句输出为0,若不满足则进入下列语句判断条件是否满足,以此类推。最终输出结果保留两位小数“%.2f"。
流程图:
3.本题调试过程碰到问题及解决办法:
1)没有用到与的逻辑关系符。
2)忘记打&。
3)else-if语句不熟练。
解决方案,寻找并修改错误,将代码重复写了几遍,找了几道类似的else-if语句的题进行解决。
循环结构1 7-1 统计学生平均成绩与及格人数
1.实验代码:
#include<stdio.h> #include<math.h> int main() { int n,i,a,count=0,sum = 0; float d; scanf("%d", &n); if ( n == 0) { printf("average = 0.0\n"); printf("count = 0"); }else { for (i = 0; i < n; i++) { scanf("%d", &a); sum = sum + a; if (a >= 60) count++; } d = (float)sum /(float) n; printf("average = %.1f\n", d); printf("count = %d", count); } }
2 设计思路:利用循环结构输入一批学生的成绩,计算平均成绩,并统计不及格人数。
1)定义n为输入数据数,i为循环变量,a输入的学生成绩,count计数初始值为0,sum成绩和值,平均值d。
2)判断输入人数是否为0,若为0输出count=0,d=0。只有当输入人数不为0时才有d=sum/n。
3)添加一个for循环,若输入人数不为0,进入该循环,计算成绩和值(sum=sum+a)如果成绩大于60即为及格成绩,count+1。
4)计算平均值,输出平均值保留1位小数,输出及格人数。
流程图:
3.本题调试过程碰到问题及解决办法:
结构错误:在判断成绩是否及格后计算sum值。
解决方法将"sum=sum+a;"输入a值的语句之后,先对sum进行计算后判断成绩是否及格,并进行统计。
循环2 7-7 寻找250:
1.实验代码:
#include <stdio.h> int main() { int n,count=0; while(n!=250){ scanf("%d",&n); count++; } printf("%d",count); return 0; }
2 设计思路:
1)定义一个n,利用循环寻找n=250,当n=250时停止输入,count初始值为0,用来记录输入的第几个数是250。
2) 没输入一个值count=count+1直到n=250时。
3)输出count值。
流程图:
3.本题调试过程碰到问题及解决办法:语句的不熟练出现的一些小错误和题目中给出的是计数从1开始,就将count定义为0。
解决方案将count=0。
总结学习进度条:
1、总结这几周所学内容、遇到的问题以及解决方法:
这几周主要重新复习了之前讲过的知识,和一些作业题目。把while for do while语句的一些使用
例如:
(1)循环次数已知使用for循环语句实现比较好
(2)循环次数未知,但循环条件在进入循环时明确使用while循环语句实现比较好
(3)循环次数未知,且循环条件在进入循环时未知,需要在循环体中明确使用do while循环语句实现比较好
遇到的问题还是对一些作业中的题目不理解,知道可以这么做,但不知道为什么这么做,暂且的解决方法还是将题目多次拿出来看。
我点评的三名同学:
1)李锐同学:
2)杨士奇同学:
3)李睿淇同学: