#include<stdio.h>main(){??? //用一堆數(shù)組求10個數(shù)字中的最大值??? int max;//暫時存儲最大值??? int i;//循環(huán)變量??? int a[10];??? printf("請輸入十個數(shù)字\n");??? //輸入數(shù)字??? for(i=0;i<10;i++)??? {??????? scanf("%d",&a[i]);??? }??? //冒泡排序求最大值,后一個大于前一個就替換??? for(i=0;i<10;i++)??? {??????? if(a[i+1]>a[i])??????? {??????? a[i] = a[i+1];??????? a[i+1] = max;??????? }??? }??? //輸出數(shù)字??? for(i=0;i<10;i++)??? {??????? printf("%d\t",max);??? }????????? return 0;}
1 回答

進(jìn)擊的學(xué)霸No1
TA貢獻(xiàn)15條經(jīng)驗 獲得超12個贊
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\n",a[0]);
這樣進(jìn)行排序,數(shù)組的第一個依次和后面的數(shù)進(jìn)行比較,若后面的數(shù)大就放到第一,這其實是進(jìn)行了從大到小的排序,然后輸出數(shù)組的第一個數(shù),自然就是最大的那個數(shù)
for(j=1;j<10;j++)
{
if(a[0]<a[j])
{
t=a[0];
a[0]=a[j];
a[j]=t;
}
}
? ??
printf("%d\n",a[0]);
只對第一個數(shù)進(jìn)行比較,減少循環(huán)次數(shù),直接輸出最大值
- 1 回答
- 0 關(guān)注
- 1226 瀏覽
添加回答
舉報
0/150
提交
取消