【发布时间】:2022-01-09 07:26:37
【问题描述】:
这是我的主要功能:
void arrCalc(int*, int, int*, int*, int*, double*, int*);
int main()
{
int a[5] = {1, 2, 3, 4, 5}, n = 5, *max, *min, *sum, *isEven;
double *avg;
arrCalc(a, n, max, min, sum, avg, isEven);
printf("%d %d %d %lf %d", *max, *min, *sum, *avg, *isEven);
return 0;
}
这是我的任务:
void arrCalc(int *arr, int n, int *max, int *min, int *sum, double *avg, int *isEven)
int i;
*min = arr[0];
*max = arr[0];
for (i = 0; i < n; i++)
{
if (arr[i] < *min)
*min = arr[i];
if (arr[i] > *max)
*max = arr[i];
if (!(arr[i] % 2))
*isEven = 1;
*sum += arr[i];
}
*avg = (double) *sum / n;
}
当我运行程序时,它什么也没打印出来。我认为它与 arrCalc 中的 min 和 max 的定义有某种联系。有人可以更正我的代码吗?
【问题讨论】:
-
当然……你重新定义了
min(还有max) -
可能不是您的主要问题,但在行尾打印换行符不会有什么坏处:
printf("%d %d %d %lf %d\n"