ユーザーが自分の数字を書き、昇順または降順でソートするかどうかを決定し、バブルソートで並べ替えるコードを作成しようとしています。これは私がこれまでに書くことができたものです(別名、明らかな入り口)。
#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;
}
私の問題は、バブルソートをそれにマージする方法が本当にわからないことです。すべての例で、事前に設定された配列を見つけることができました。for 構造から始めるべきだと思っていますが、わかりません。
編集:
ヘルプのおかげでここまで来ました.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;
}