题目:输入10个数,要求输出其中值最大的元素和该数是第几个数。
我的做法:
int max(int x,int y)
{
int z;
return(z=x>y?x:y);
}
#include
int main()
{
int max(int x,int y);
int a[10],i,j,b,c;
for(i=0;i<10;i++)
{
scanf("%d",a[i]);
}
for(j=a[0],i=1;i<10;i++)
if(max(a[i],j)>j)
{
j=a[i];
c=i;
}
printf("the max is %d.it is the %dth number.\n",j,c+1);
return 0;
}
这个代码可以运行,但是不能输出结果
能不能帮忙找找错,谢谢
scanf函数错了,少了&号
scanf("%d",&a[i]);
```c
```
改动处见注释,供参考:
#include <stdio.h>
int max(int x, int y)
{
int z;
return(z = x > y ? x : y);
}
int main()
{
int max(int x, int y);
int a[10], i, j, b, c;
for (i = 0; i < 10; i++)
{
scanf("%d", &a[i]); //scanf("%d", a[i]); 修改
}
for (j = a[0], c = 0, i = 1; i < 10; i++) // for(j=a[0],i=1;i<10;i++) 修改
if (max(a[i], j) > j)
{
j = a[i];
c = i;
}
printf("the max is %d.it is the %dth number.\n", j, c + 1);
return 0;
}