C 语言的一道改错题目 题目说有 4 个错误,前 3 个错误不管他 主要是第四个
编程输入 10 个数,找出其中的最大值及其所在的数组下标位置。(4 个错误)
include <stdio.h>
int FindMax(int num[], int n, int *pMaxPos);
main()
{
int num[10], maxValue, maxPos, minValue, minPos, i;
printf("Input 10 numbers:\n ");
for (i=0; i<10; i++)
{
scanf("%d", num[i]); //加取地址符号
}
maxValue = FindMax(num, 10, maxPos); //加取地址符号
printf("Max=%d, Position=%d\n",maxValue, maxPos);
}
int FindMax(int num[], int n, int pMaxPos); //去掉分号
{
int i, max;
max = num[0];
/*主要是这第四个错误 老师说要增加初始化语句*pMaxPos=0 说是逻辑上的错误,这个时候不加这一条语句程序已能正常运行并实现功能
我只想知道这个真的算一个错误吗?/
for (i = 1; i < n; i++)
{
if (num[i] > max)
{
max = num[i];
*pMaxPos = i;
}
}
return max;
}