我正在嘗試編寫一個代碼讓用戶編寫自己的數字,並決定他是否希望按升序或降序對它們進行排序,並使用冒泡排序對它們進行排序。這是我到目前爲止所能寫的(又名明顯入口);泡泡分類中的用戶輸入
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, a, number;
printf("Enter your numbers. Write -1 to stop. \n");
do {
scanf("%d", &a);
} while(a != -1);
printf("Enter 1 if you want them to be in ascending order. Enter 2 if you want descending order\n");
scanf("%d", &a);
if(a = 1)
do {
system("PAUSE");
return 0;
}
我的問題是,我真的不知道如何合併泡沫排序。在我能找到的所有例子中,都有數組已經被預先設定好了。我想我應該從一個結構開始,但我不知道。
編輯:
我來到這麼遠感謝幫助,那種它「作品」,直到我寫1或2,然後崩潰。有什麼建議麼?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int myarray[100],index,a,b,swap,turn;
index=0;
printf("Enter your numbers. Write -1 to stop. \n");
do{
scanf("%d", &myarray[index]);
index++;
}while(myarray[index-1] != -1);
printf("Enter 1 if you want them to be in ascending order. Enter 2 if you want descending order\n");
scanf("%d",&b);
if(b == 1) {
for(turn=1; turn <= myarray[100] -1; turn++)
for(index = 0; index <= myarray[100]; index++)
{
if (myarray[index] > myarray[index+1]){
swap = myarray[index];
myarray[index] = myarray[index+1];
myarray[index+1] = swap; }
}
}
else {
for(turn=1; turn <= myarray[100] -1; turn++)
for(index = 0; index <= myarray[100]; index++)
{
if (myarray[index] < myarray[index+1]){
swap = myarray[index];
myarray[index] = myarray[index+1];
myarray[index+1] = swap; }
}
}
system("PAUSE");
return 0;
}
您正在使用a = 1而不是== 1。 – 2012-07-21 17:41:47
訪問'myarray [100]'是數組超出範圍。 – BLUEPIXY 2012-07-22 01:08:45