要输出数组中最大数的序号,但是这个程序显示出错,我实在看不出来哪里有问题
#include<stdio.h>
void FindMinElement (double dArray[], int nCount)
{
int i,t;
for(i=1;i<nCount;i++)
{
if(dArray[i-1]<dArray[i])
{
t=i-1;
printf("最小的数是%d",t);
}
}
}
void FindMaxElement (double dArray[], int nCount)
{
int i,t;
for(i=1;i<nCount;i++)
{
if(dArray[i-1]>dArray[i])
{
t=i-1;
printf("最大的数是%d",t);
}
}
}
int main()
{
double dArray={3,6,8,1,6,9,3,6,9,1};
int a=10;
FindMinElement(dArray,a);
FindMaxElement(dArray,a);
return 0;
}
2 3 1
你去输入之后,输出的最小下标会是0,而不是2
为什么呢?
因为你每次并没有和数组当前位置之前的最小值去作比较。试着自己再分析一下。