c语言编程:设有一个数组,从键盘输入10个整数,要求找出最大的数和它的下标,并把它和数组中的第一个交换

2025-01-04 06:06:56
推荐回答(4个)
回答1:

#include

int main()
{
int i,a[10],max,max_i,tmp;
for(i=0;i<10;i++)
{
printf("请输入a[%d]\n",i);
scanf("%d",&a[i]);
}
max=a[0];
max_i=0;
for(i=0;i<10;i++)
{
if(max < a[i])
{
max = a[i];
max_i = i;
}
}
tmp = a[0];
a[0] = a[max_i];
a[max_i] = tmp;
printf("最大数%d,下标是%d\n",max,max_i);
printf("调换后的数组:\n");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}

回答2:

void main ()
{
int a[10];
int max=0;
int i;
for(i=1;i<10;i++)
if(a[i]>a[max])
max=i;
}
if( max != 0)
{
i=a[0];
a[0]=a[max];
a[max]=i;
}
/*最大数下标max*/
}

回答3:

#include
main ()
{
int i,j,temp,max,shuzu[10]; /*j记录下标的位置,temp是交换时用的中间值*/
for (i=0;i<10;i++)
scanf ("%d",&shuzu[i]);
max=shuzu[0];
j=1;
for (i=0;i<10;i++)
if (max {
max=shuzu[i];
j=i+1; /*因为数组的下标比实际的位置少1,所以j要加1*/
}
printf ("the max is: %d address is : %d \n",max,j);
temp=shuzu[j-1];
shuzu[j-1]=shuzu[0]; /*最大的和第一个交换*/
shuzu[0]=temp;
printf ("after change:\n ");
for (i=0;i<10;i++)
printf ("%4d",shuzu[i]);
printf ("\n");
}

如果对你有帮助,请采纳吧。

回答4:

就是冒泡排序嘛,排序完成以后,把最大的替换第一个就是了