求C语言大佬看一下,我有点疑问

#include<stdio.h>#include<string.h>voidmain(){inta[5],i;printf("请输入学生成绩:");for(i=0;i<... #include<stdio.h>
#include<string.h>
void main()
{ int a[5],i;
printf("请输入学生成绩:");
for(i=0;i<=4;i++)
scanf("%d",&a[i]);
fun(a);
}
int fun(int d[])
{
int sum=0,c=0,ave,i;
for(i=0;i<=4;i++)
sum=sum+d[i];
ave=sum/4;
for(i=0;i<=4;i++)
{
if(d[i]>ave)
c=c+1;
}printf("%d",c);
}#include<stdio.h>
#include<string.h>
void main()
{ int a[5],i;
printf("请输入学生成绩:");
for(i=0;i<=4;i++)
scanf("%d",&a[i]);//就是这里
fun(a);
}
int fun(int d[])
{
int sum=0,c=0,ave,i;
for(i=0;i<=4;i++)
sum=sum+d[i];
ave=sum/4;
for(i=0;i<=4;i++)
{
if(d[i]>ave)
c=c+1;
}printf("%d",c);
}

请问为什么我用(输入-回车)*5和输入*5-回车两种方式都可以得到结果呢,从程序上看第二种方式是错的啊?
#include<stdio.h>
#include<string.h>
void main()
{ int a[5],i;
printf("请输入学生成绩:");
for(i=0;i<=4;i++)
scanf("%d",&a[i]);这里这里
fun(a);
}
int fun(int d[])
{
int sum=0,c=0,ave,i;
for(i=0;i<=4;i++)
sum=sum+d[i];
ave=sum/4;
for(i=0;i<=4;i++)
{
if(d[i]>ave)
c=c+1;
}printf("%d",c);
}
上面打了两遍,怕大佬看不舒服,这是我的程序。还是那个问题,为什么两种方式都可以得到结果呢?我用的VC++
展开
 我来答
wt_31222481
2017-08-12
知道答主
回答量:62
采纳率:0%
帮助的人:18.2万
展开全部
五个学生成绩连续分开输入,再按回车键,for循环里的scanf()函数会依次读取缓冲区里的数据。
程序纠错:
#include<stdio.h>
#include<string.h>
fun(int []); //纠错一:声明函数原型
void main()
{
int a[5],i;
printf("请输入学生成绩:");
for(i=0;i<=4;i++)
scanf("%d",&a[i]);
fun(a);
}

fun(int d[]) // 纠错二:函数无返回值,不应该有 int
{
int sum=0,c=0,ave,i;
for(i=0;i<=4;i++)
sum=sum+d[i];
ave=sum/5; //纠错三:五个值应除五
for(i=0;i<=4;i++)
{
if(d[i]>ave)
c=c+1;
}
printf("%d",c);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式