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