c语言问题 找出数组最大值和其下标

#include<stdio.h>
int main()
{ #define x 10
int a[x],i,max,j;
for( i=0;i<10;i++)
{
scanf("%d",a[i]);
}
max=0;
for(j=1;j<=x;j++)
{
if(a[max]<a[j]) max=j;
}
printf("最大值的下标是:%d 最大值是:%d",max,a[max]);
return 0;
}

哪不对 初学

#include<stdio.h>
#define x 10 //宏定义在外面
int main()
{
int a[x],i,max,j;
for( i=0;i<10;i++)
{
scanf("%d",&a[i]); //少了&
}
max=0;
for(j=1;j<=x;j++)
{
if(a[max]<a[j]) max=j;
}
printf("最大值的下标是:%d 最大值是:%d",max,a[max]);
return 0;
}追问

追答

#include
#define x 10 //宏定义在外面
int main()
{
int a[x],i,max,j;
for( i=0;i<10;i++)
{
scanf("%d",&a[i]); //少了&
}
max=0;
for(j=1;j<x;j++) //不要=
{
if(a[max]<a[j]) max=j;
}
printf("最大值的下标是:%d 最大值是:%d",max,a[max]);
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-07
for(j=1;j<=x;j++),这里j最大会等于x等于10,而a[10]会导致数组越界,所以

for(j=1;j<=x;j++)要改成for(j=1;j<x;j++)
相似回答