如何用一个循环输出一个数组中最小数和次小数的和(数组无序)?

来源:百度知道 编辑:UC知道 时间:2024/05/30 06:38:36
下面的解答全是用一个循环以上来解决的,我说的是仅用一个循环就能解决问题!

(1)排序,先找出最大和最小的数
(2)求和。
下面是一个例子:
main()
{
int i,j,temp(中介的作用),sum(和);
int a[10]; /*这是一个已知的数组*/
for(i=0;i<9;i++) /*
for(j=i+1;j<10;j++)
if(a[i]>a[j]) 这是冒泡排序法,从小到大排序
{
temp=a[i];
a[i]=a[j]; */
a[j]=temp;
}
sum=a[0]+a[1]; /*求出最小数和次最小数的和*/
printf("最小数+次最小数=%d\n",sum);

}

其实这道题,有多种解法,只要您能把c语言学得运用自如了,当然这道题就不在话下啦!加油哦....

另外:一楼兄弟的冒泡排序法错啦!有误哦...

main()
{
int a[10];
int i,j,t;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
printf("%d",a[0]+a