A. 從鍵盤輸入10個整數,編寫程序用選擇排序法對這十個數降序排列,要求主函數功能
include<stdio.h>
int main()
{int i,j,k,t,a[10];
for(i=0;i<森頌祥10;i++) //輸入10個整數
櫻敏 scanf("%d",&a[i]);
for(i=0;i<9;i++) //排序10個數,需要9輪
{k=i; //當前最小值的編號
for(j=i+1;j<10;j++) //掃描後續所有元素
if(a[j]<a[k])k=j; //如後面的元素更小,就更新最小編號
t=a[i]; a[i]=a[k]; a[k]=t; //把最小的元素交換到第 i 位
}
for(i=0;i<10;i++) //輸出排好序的元素此搏值
printf("%d ",a[i]);
return 0;
}
B. 用計算機C語言編程,程序設計題:從鍵盤輸入十個數,將他們進行降序排列。 求解答需要詳細過程,謝謝!
#include<stdio.h>
intmain()
{inti,j,t,a[10];
for(i=0;i<10;i++)//輸入10個整數
scanf("%d",&a[i]);
for(i=0;i<9;i++)//降序冒泡排序
搜此for(j=0;j<9-i;j++)
世鬧迅if(a[j]<a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(i=0;i<10;i++)//輸出
printf("%d"彎襪,a[i]);
printf("
");
return0;
}
C. 輸入十個數據,如何將它們按降序排列
採用冒泡法降序排列10個輸入數據的程序如下:
(3)演算法十個數降序排列擴展閱讀:
冒泡排序演算法的原理如下:
1、比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
2、對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
3、針對所有的元素重復以上的步驟,除了最後一個。
4、持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。
D. 今天第一次用matlab,用rand產生10個隨機數,再用for循環進行降序排序,結果悲劇了。求正解。
不知用冒泡演算法可不可以,我試了試,還行
a=rand(10,1)*2-1;
for i=1:length(a)
for j=1:length(a)-1
if a(j)<a(j+1)
t=a(j);
a(j)=a(j+1);
a(j+1)=t;
end
end
end
a