第三次作业
博客链接:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2360
问题:
7-5 奇偶分家 (10 分)
给定N
个正整数,请统计奇数和偶数各有多少个?
输入格式:
输入第一行给出一个正整N
(≤1000);第2行给出N
个正整数,以空格分隔。
输出格式:
在一行中先后输出奇数的个数、偶数的个数。中间以1个空格分隔。
输入样例:
9
88 74 101 26 15 0 34 22 77
输出样例:
3 6
解题思路:
1.定义变量N,i,n,a=0,b=0 输入位数n,数字N
2.执行语句 如果是偶数求a和 否则求b和
3.输出a,b值
实验代码:
#include<stdio.h> int main(void) { int N,i,n,a=0,b=0; scanf("%d",&n); for(i=0;i < n;i++){ scanf("%d",&N); if(N%2 == 0){ a++; } else{ b++; } } printf("%d %d",b,a); return 0; }
流程图:
本题调试过程碰到问题及解决办法:
1.输入数值
2.循环到偶数
3.循环到奇数
4.输出数值
问题2:
7-3 统计学生平均成绩与及格人数 (15 分)
本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。
输入格式:
输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。
输出格式:
按照以下格式输出:
average = 成绩均值
count = 及格人数
其中平均值精确到小数点后一位。
输入样例:
5
77 54 92 73 60
输出样例:
average = 71.2
count = 4
解题思路:
1.定义变量
i=1,n=0,grade=0,count=0,sum=0;count为及格人数,grade为成绩
2.输入人数,在输入成绩
3.通过循环算出大于60的成绩,在算出平均数
4.输出平均值和及格人数
实验代码:
#include<stdio.h> int main(void) { int i=0,n=0,grade=0,count=0,sum=0; double average=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",count); return 0; }
流程图:
本题调试过程碰到问题及解决办法:
1.先输入数值
2.通过执行语句算出平均值比输出
3.通过执行语句算出及格人数并输出
问题3:
7-1 求整数的位数及各位数字之和 (15 分)
对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:
输入在一行中给出一个不超过10^9的正整数N。
输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
输入样例:
321
输出样例:
3 6
解题思路:
1.定义变量N,sum=0,m sum为各位数字之和,m为整数的位数
2.输入整数N
3.执行语句,求出m,sum
实验代码:
#include<stdio.h> int main(void) { int N,sum=0,m; scanf("%d",&N); if(N<0){ N=-N; } m=0; for(N!=0;N;N/=10){ m++; sum+=N%10; } printf("%d %d",m,sum); return 0; }
流程图:
本题调试过程碰到问题及解决办法:
1.输入数值321
2.执行循环语句
3.输出位数m 和 各位数的和n 的值
4.前面是求位数 后面求和 但是只执行do while语句 后面输出和为0。所以只能把两个数用一个循环写出来。
总结:
1.通过这几周的学习,内容上增加了很多东西还有就知识的延申,比如for循环语句的运用及多个for的连用套用(这个理解起来比较难),还有学习了while语句,do-while语句,还有
swicth case break 的语句及运用,后面还学了函数的调用
2.在学习上我发现了自己的不足,许多学过的东西我只是停留在片面没有,通过pta作业发现自己课下没有巩固,许多问题都是通过同学才能做出来;还有自己的听课状态需要改进,不
能每次老师提问我都答不出来答案,听老师说很多同学自学的速度超过了他讲课的速度,这才让我看到别人的努力,这方面我要大幅度的去改进,也不是要多好,最起码老师讲过的都
能跟上,课后回来还要复习。
3.通过这几周的学习认为for的很多套用理解困难,但通过同学的讲解懂得了一点,但是还是要去深入。
评论他人博客:
https://www.cnblogs.com/liuweiliuwei/p/10016885.html#4127450 刘 伟
https://www.cnblogs.com/asdfghjklasdfghjkl/p/10003892.html 孙成龙
https://www.cnblogs.com/chen0803/p/10046139.html 陈悦安