我正在尝试编写一个代码让用户编写自己的数字并决定他是否希望它们按升序或降序排序,并用冒泡排序对它们进行排序。这是我目前能写的(也就是明显的入口);
#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;
}