C语言编程:假设数组中已存放3,1,6,8,2,10,9,5,4,7在数组中找出最大元素并将最大元素和第一个对调

如题所述

#include<stdio.h>
int main(int argc,char *argv[])
{
int a[10]={3,1,6,8,2,10,9,5,4,7};
int max,t,i;
int max_index;
max=a[0]; //假定最大值是第一个
for(i=0;i<10;i++)
if(a[i]>max)
{
max=a[i];
max_index=i; //记录下最大值在数组中的位置
}
t=a[0]; //最大数和第一个数交换
a[0]=a[max_index];
a[max_index]=t;
for(i=0;i<10;i++)
printf("%d\n",a[i]);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-12
int a[] = {3,1,6,8,2,10,9,5,4,7};
int max = a[0];
int maxId = 0;
for(int i = 1; i < 10; i++)
{
if(max < a[i])
{
max = a[i];
maxId = i;
}
}
//与第一个对调
a[maxId] = a[0];
a[0] = max;
第2个回答  2012-04-12
引入MAX变量,用循环把最大的找出来,然后引中间变量,和第一个对换
第3个回答  2012-04-12
用堆栈的思想或者是简单地冒泡法