C語言程序填空,請指教,謝謝。
程序說明:首先產生10個隨機數放在數組data中,然後用選擇排序法對其進行排序,最後將排好序的數依次打印出來。
#include<stdio.h>
void main(){
int i,j,k,value,data[10];
printf("Input 10 numbers:\n");
for(i=0;i<10;i++){
scanf("%d",&data[i]);
}
for(i=0;____;++i){ /*第一個空*/
k=i;
for(j=j+1;j<10;++j){
if(data[k]>data[j]){
k=_____; /*第二個空*/
}
}
value=______; /*第三個空*/
____________; /*第四個空*/
_______=value; /*第五個空*/
}
for(i=0;i<10;i++){
printf("%5d",data[i]);
}
printf("\n");
}
最佳回答:
呵呵,你的程for(j=j+1;j<10;++j){ 這個有問題,j沒有初值,改j=i+1;就行了,我是從小到大排的啊!!
#include<stdio.h>
void main(){
int i,j,k,value,data[10];
printf("Input 10 numbers:\n");
for(i=0;i<10;i++){
scanf("%d",&data[i]);
}
for(i=0;i<10;++i){ /*第一個空*/
k=i;
for(j=i+1;j<10;++j){
if(data[k]>data[j]){
k=j; /*第二個空*/
}
}
value=data[i]; /*第三個空*/
data[i]=data[k]; /*第四個空*/
data[k]=value; /*第五個空*/
}
for(i=0;i<10;i++){
printf("%5d",data[i]);
}
printf("\n");
}