练习3-3 统计学生平均成绩与及格人数 (15分)本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。
输入格式:
输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。
输出格式:
按照以下格式输出:
average = 成绩均值 count = 及格人数其中平均值精确到小数点后一位。
输入样例:
5 77 54 92 73 60输出样例:
average = 71.2 count = 4
#include<stdio.h>
int main()
{
int n,t,cnt=0; //个人尝试用数组来存储,反而麻烦了
double avg=0;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&t);
avg+=t;
if(t>=60) cnt++;
}
if(n==0) n=1; //此处,是本题的易错点:忽视了n=0时,在数学上是不可以作为分母的;
printf("average = %.1lf\n",avg/n);
printf("count = %d",cnt);
}
练习3-4 统计字符 (15分)本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
输入格式:
输入为10个字符。最后一个回车表示输入结束,不算在内。
输出格式:
在一行内按照
letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数的格式输出。
输入样例:
aZ & 09 Az输出样例:
letter = 4, blank = 3, digit = 2, other = 1
#include <stdio.h>
int main(){
int letter=0,blank=0,digit=0,other=0;
char ch;
for(int i=1;i<=10;i++){
ch=getchar(); //弱点:getche()用法
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){
letter++;
}else if(ch>='0'&&ch<='9'){
digit++;
}else if(ch==' '||ch=='\n'){
blank++;
}else{
other++;
}
}
printf("letter = %d, blank = %d, digit = %d, other = %d",letter , blank , digit , other );
return 0;
}
/*注意事项:第一次使用if...else if...else if...else结构,因为后边的语句仅1条,所以没有带{}分隔开,出现问题;下一步:详细回顾if结构内容*/
来源:oschina
链接:https://my.oschina.net/u/4429979/blog/4317073