|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
void main()
{
int a[5]={98,95,99,86,82};
float average(int p,int n);
float ave;
ave = average(a,5);
printf("%f",ave);
}
float average(int p,int n)
{
float sum=0;
int i;
for(i=p;i<n;p++)
{
sum+=*p;
}
sum/=5;
return sum;
}
本帖最后由 Neverturnback 于 2019-8-6 13:35 编辑
#include <stdio.h>
void main()
{
int a[5]={98,95,99,86,82};
float average(int p,int n); //下面a是一个int*类型,所以这里的p要是int*类型,不能是int类型
float ave;
ave = average(a,5);
printf("%f",ave);
}
float average(int p,int n)
{
float sum=0;
int i;
for(i=p;i<n;p++)//这里 i 是 一直小于 n 的,没有退出条件,这个就是死循环(i = p只会在进入循环的时候执行一次,后面的每一次循环都不执行i = p)
{
sum+=*p;
}
sum/=5;
return sum;
}
下面是更改后的代码(已成功运行):
- #include <stdio.h>
- void main()
- {
- int a[5] = { 98, 95, 99, 86, 82 };
- float average(int *p, int n);
- float ave;
- ave = average(a, 5);
- printf("%f", ave);
- getchar();
- }
- float average(int *p, int n)
- {
- float sum = 0;
- int i;
- for (i = 0; i<n; i++, p++)
- {
- sum += *p;
- }
- sum /= 5;
- return sum;
- }
复制代码
|
|