最大值函数中,对max的值修改不能用 max = p+i,必须用 *max = *(p+i)
求平均值函数中的aver变量未使用,去掉
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void zuidazhi(int *p, int n, int *max)
{
int i;
for (i = 0; i < n; i++)
{
if (i == 0)
*max = p[0];
else if (*max < *(p + i))
*max = *(p + i);
}
}
void zuixiaozhi(int *p, int n, int *min)
{
int i;
for (i = 0; i < n; i++)
{
if (i == 0)
*min = p[0];
else if (*min > *(p + i))
*min = *(p + i);
}
}
float pingjun(int *p, int n)
{
float sum = 0;
int i;
for (i = 0; i < n; i++)
{
sum += p[i];
}
return sum / n;
}
void main()
{
srand(time(NULL));
int a[10], j, max, min;
float c;
for (j = 0; j < 10; j++)
a[j] = 30 + rand() % 71;
for (j = 0; j < 10; j++)
printf("%d ", a[j]);
printf("\n");
zuidazhi(a, 10, &max);
zuixiaozhi(a, 10, &min);
c = pingjun(a, 10);
printf("最大值是: %d\n", max);
printf("最小值是: %d\n", min);
printf("平均值是: %.1f\n", c);
}
报错信息是什么
你调用zuidazhi()这个函数,需要带三个参数,你把代码改成:zuidazhi(a,10,max)试一下。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632