发布网友 发布时间:2022-04-22 10:07
共1个回答
热心网友 时间:2023-09-23 19:29
给出的问题不严密:
只有大于和小于,没有等于的情况,比如说平均分在50到70之间,然后第2个和第3个数之和正好等到于140分时,一楼上程序便没有输出,我想是题目出得不太严密吧,不可能出题者是故意把这些情况漏掉吧!所以呢,经过笔者的修改呢,我觉得以下程序能包括出题者的全部意思:
如果题目非我所想,那你也可以自己根据情况改一下那几个>或者=号,你自己看看吧!
#include
<stdio.h>
main()
{
float
a[3],i,average;
for(i=0;i<3;i++)
scanf("%f",&a[i]);
average=(a[0]+a[1]+a[2])/3.0;
if(average>=90)
printf("Grade=A");
if(average>=70&&average<90&&a[2]>=90)
printf("Grade=A");
if(average>=70&&average<90&&a[2]<90)
printf("Grade=B");
if(average>=50&&average<70&&a[1]+a[2]>=140)/*这个地方与以一楼上程序不同,题目要求的是第2和3个数之和要大于140,一楼上的是第1和2个之和大于140,与题意不合(因为数组是从0开始计数的)*/
printf("Grade=C");
if(average>=50&&average<70&&a[1]+a[2]<140)
printf("Grade=D");
if(average<50)
printf("Grade=F");
}