循环中的个数问题?
#include<stdio.h>#include<string.h>
int main()
{int max(int x,int y);
int i,m,n,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("the numbers that have been input are :\n");
for(i=0;i<10;i++)
printf("%3d",a[i]);
for(i=1,m=a[0];i<10;i++)
{if(max(m,a[i])>m)
{m=max(m,a[i]);
n=i;}
}
printf("\nthe max is %d,is the %dth number.\n",m,n+1);
}
int max(int x,int y)
{int z;
if(x>y) z=x;
else z=y;
return (z);
}
如果用1 2 3 4 5 6 7 8 9 0,得到的结果是9,9;
但是如果输出的句子改为 i+1,即 printf("\nthe max is %d,is the %dth number.\n",m,i+1); ,结果为什么就变成9,11了呢?怎么就成第11个数了?