输入一批学生成绩,以-1作为结束标记。
统计这批学生中不及格(<60)、及格(60-69)、中(70-9)、良(80~89)、优(>90)的人数。
求这批学生的平均分。
#include<stdlib.h>
#include<stdio.h>
int main(void)
{
float sum=0.0,avg=0.0;
int num,count,c9,c89,c78,c67,c6;
num=count=c9=c89=c78=c67=c6=0;
scanf("%d",&num);
while(num>=0 && num<101)
{ sum=sum+num;
count=count+1;
if(num>=90) c9=c9+1;
else {
if(num>=80 && num<90) c89=c89+1;
else {
if(num>=70 && num<80) c78=c78+1;
else
{ if(num>=60 && num<70) c67=c67+1;
else c6=c6+1;
}
}
} scanf("%d",&num);
}
avg=sum/count;
printf("全班平均成绩为:%f\n",avg);
printf("90分以上的(包括90分)的人数是:%d\n",c9);
printf("8090分(包括80分)的人数是:%d\n",c89);80分(包括70分)的人数是:%d\n",c78);
printf("70
printf("60~70分(包括60分)的人数是:%d\n",c67);
printf("60分以下的人数是:%d\n",c6); system ("pause");return 0;
Scanner scanner = new Scanner(System.in);
int num = 1;
Map<String, Integer> map = new HashMap<>(8);
double sum = 0D;
while (true) {
// 只能接收数字
if (scanner.hasNextDouble()) {
double value = scanner.nextDouble();
if (value==-1) {
// 结束
break;
}
String line = String.valueOf(value);
// 统计分数加入到Map中
if (value < 60) {
Integer buJiGe = map.get("buJiGe") == null ? 1 : map.get("buJiGe") + 1;
map.put("buJiGe", buJiGe);
} else if (value >= 60 && value <= 69) {
Integer jiGe = map.get("jiGe") == null ? 1 : map.get("jiGe") + 1;
map.put("jiGe", jiGe);
} else if (value >= 70 && value <= 79) {
Integer zhong = map.get("zhong") == null ? 1 : map.get("zhong") + 1;
map.put("zhong", zhong);
} else if (value >= 80 && value <= 89) {
Integer liang = map.get("liang") == null ? 1 : map.get("liang") + 1;
map.put("liang", liang);
} else {
Integer you = map.get("you") == null ? 1 : map.get("you") + 1;
map.put("you", you);
}
// 累加分数
sum += value;
num++;
} else {
System.out.println("你录入的类型不正确,请重新输入");
}
}
// 打印各个分段的数量
System.out.println("不及格的人数为:" + map.get("buJiGe"));
System.out.println("及格的人数为:" + map.get("jiGe"));
System.out.println("中等的人数为:" + map.get("zhong"));
System.out.println("良好的人数为:" + map.get("liang"));
System.out.println("优秀的人数为:" + map.get("you"));
// 减1的原因是,最后一次录入的数据为"-1"
double avg = sum / (num - 1);
System.out.println("全班平均分为:" +String.format("%.1f",avg));
public class Test{
public static void main(String[] args) {
System.out.print("录入数据:\n");
int num = 1;
Map<String, Integer> map = new HashMap<>(8);
double sum = 0D;
while (true) {
Scanner scanner = new Scanner(System.in);
System.out.println("第" + num + "个数据:");
// 只能接收数字
if (scanner.hasNextDouble()) {
double value = scanner.nextDouble();
String line = String.valueOf(value);
if (line.equals("-1") || line.equals("-1.0")) {
// 结束
break;
}
// 统计分数加入到Map中
if (value < 60) {
Integer buJiGe = map.get("buJiGe") == null ? 1 : map.get("buJiGe") + 1;
map.put("buJiGe", buJiGe);
} else if (value >= 60 && value <= 69) {
Integer jiGe = map.get("jiGe") == null ? 1 : map.get("jiGe") + 1;
map.put("jiGe", jiGe);
} else if (value >= 70 && value <= 79) {
Integer zhong = map.get("zhong") == null ? 1 : map.get("zhong") + 1;
map.put("zhong", zhong);
} else if (value >= 80 && value <= 89) {
Integer liang = map.get("liang") == null ? 1 : map.get("liang") + 1;
map.put("liang", liang);
} else {
Integer you = map.get("you") == null ? 1 : map.get("you") + 1;
map.put("you", you);
}
// 累加分数
sum += value;
num++;
} else {
System.out.println("你录入的类型不正确,请重新输入");
}
}
// 打印各个分段的数量
System.out.println("数据录入结束,统计结果如下:\n");
System.out.println("不及格的人数为:" + map.get("buJiGe"));
System.out.println("及格的人数为:" + map.get("jiGe"));
System.out.println("中等的人数为:" + map.get("zhong"));
System.out.println("良好的人数为:" + map.get("liang"));
System.out.println("优秀的人数为:" + map.get("you"));
// 减1的原因是,最后一次录入的数据为"-1"
double avg = sum / (num - 1);
System.out.println("平均成绩为:" + avg);
}
}
有用就关注,点赞