c语言运行错误,C大拿们来帮帮忙吧
解决时间 2021-05-01 10:35
- 提问者网友:富士山上尢
- 2021-05-01 01:38
#include <stdio.h>
float average (float array[])
{
int j;
float aver,sum=0;
for (j=0;j<10;j++)
sum=sum+array[j];
aver=sum/10;
return aver;
}
void main ()
{
//float average (float array [10]);
float score[10],aver;
int i;
printf ("input 10 scores: \n");
for (i=0;i<=10;i++)
scanf ("%f",&score[i]);
printf ("\n");
aver=average(score);
printf ("average score is %5.2f\n",aver);
}
帮我看看这个程序 好不? 我运行到处结果那出错 不知道哪不对
有大拿帮忙运行下 看看那不对
最佳答案
- 五星知识达人网友:十年萤火照君眠
- 2021-05-01 03:05
#include <stdio.h>
float average (float array[])
{
int j;
float aver,sum=0;
for (j=0;j<10;j++)
sum=sum+array[j];
aver=sum/10;
return aver;
}
void main ()
{
//float average (float array [10]);
float score[10],aver;
int i;
printf ("input 10 scores: \n");
for (i=0;i<10;i++) // 这里应该是i<10,否则i=10的时候数组访问越界
scanf ("%f",&score[i]);
printf ("\n");
aver=average(score);
printf ("average score is %5.2f\n",aver);
}
全部回答
- 1楼网友:旧脸谱
- 2021-05-01 06:48
float average (float array[])
这个函数定义有问题。
/float average (float array [10]);
函数声明有问题,
aver=average(score);
函数用的有问题。
原因是
函数定义是少个形参,
可以这样定义
float average (float array[],int n)
所以声明时就得相应换成
float average (float array[],int n);
电脑在编译时是不会注意我《》括的东西的。
/float average (float 《array [10]》);
所以你写的就相当于
/float average (float );
所以会出现你的问题,
用的时候应该这样用,
aver=average(score,n);
有关于c语言的问题就问我,
我现在学,一起学习。
- 2楼网友:胯下狙击手
- 2021-05-01 06:13
for (i=0;i<=10;i++)//这里的<=10应该改成<10
因为从0到9就是10个数了;
#include <stdio.h>
float average (float array[])
{
int j;
float aver,sum=0;
for (j=0;j<10;j++)
sum=sum+array[j];
aver=sum/10;
return aver;
}
void main ()
{
//float average (float array [10]);
float score[10],aver;
int i;
printf ("input 10 scores: \n");
for (i=0;i<10;i++)//这里的<=10应该改成<10
scanf ("%f",&score[i]);
printf ("\n");
aver=average(score);
printf ("average score is %5.2f\n",aver);
}
结果
- 3楼网友:猎心人
- 2021-05-01 05:01
for (i=0;i<=10;i++)应改为for (i=0;i<10;i++)
因为整个数组就10个数据大,你那句for (i=0;i<=10;i++)就变成11个了!!
- 4楼网友:独钓一江月
- 2021-05-01 04:21
小错误 内存越界了 帮你改过来了
再看看
#include <stdio.h>
float average (float array[])
{
int j;
float aver,sum=0;
for (j=0;j<10;j++)
sum=sum+array[j];
aver=sum/10;
return aver;
}
void main ()
{
//float average (float array [10]);
float score[10],aver;
int i;
printf ("input 10 scores: \n");
for (i=0;i<10;i++)//这里不能等于 越界了
scanf ("%f",&score[i]);
printf ("\n");
aver=average(score);
printf ("average score is %5.2f\n",aver);
}
我要举报
大家都在看
推荐资讯