PAT-易错题-020

本秂侑毒 提交于 2020-08-05 02:37:18
练习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结构内容*/

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!