朋友,我是一名计算机科学专业的学生,我的讲师给了我一个编写程序的任务,将20个数字输入数组并计算标记的总数和平均值.所以我写了上面的代码作为答案.当我检查答案时输入平均值有一个小错误.如果正确的平均值是48.59,程序给出的平均值为48.00.i试图解决问题而我无法做到这一点.有人帮我吗?
我正在使用CODEBLOCKs来编写程序.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int grades[20];
int a,b,c,d,tot=0,high=0;
float avg=0;
for(a=0;a<20;a++)
{
printf("Input the Mark : ");
scanf("%d",&d);
if(d>=0&&d<=100)
grades[a]=d;
else
{
printf("OUT OF RANGE.PLEASE INPUT A VALID NUMBER.\n");
a--;
}
}
for(b=0;b<20;b++)
{
tot=tot+grades[b];
}
avg=tot/20;
high=grades[0];
for(c=0;c<20;c++)
{
if(high<grades[c])
high=grades[c];
}
printf("The Total Value is : %d\nThe Average is : %.02f\nHighest Value is : %d",tot,avg,high);
Run Code Online (Sandbox Code Playgroud)
}
以下使用整数除法(即使您将结果存储在浮点变量中):
avg=tot/20;
Run Code Online (Sandbox Code Playgroud)
要强制进行浮点除法,请使用:
avg=tot/20.0;
Run Code Online (Sandbox Code Playgroud)