|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
int main(void)
{ int num,i,j;
printf("请输入要排序的数字个数\n");
scanf("%d",&num);
int a[(num-1)];
for(i=0;i<num;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[(num-1)]);
}
for(i=0;i<=num;i++)
{
for(j=(i+1);j<=num;j++)
{
int temp;
if(a>a[j])
{
temp=a;
a=a[j];
a[j]=temp;
}
}
}
printf("排序后是:\n");
for(i=0;i<num;i++)
{
printf("%d\t",a);
}
return 0;
}
大神们,这个冒泡排序法,运行出来怎么不对?运行结果如下:
请输入要排序的数字个数
6
a[0]=8
a[1]=3
a[2]=5
a[3]=1
a[4]=7
a[5]=6
排序后是:
0 6 32 4214907 4214907 1985372658
--------------------------------
Process exited with return value 0
Press any key to continue . . .
很多零碎的错误。帮你修改了。
- #include<stdio.h>
- int main(void)
- { int num,i,j;
- printf("请输入要排序的数字个数\n");
- scanf("%d",&num);
- int a[num];//这里为什么要减1
- for(i=0;i<num;i++)
- {
- printf("a[%d]=",i);
- scanf("%d",&a[i]);//这里难道不应该是a[i]吗
- }
-
-
- for(i=0;i<num-1;i++)//这里应该是小于num-1
- {
- for(j=(i+1);j<num;j++)//这里应该是小于num
- {
- int temp;
- if(a[i]>a[j])
- {
- temp=a[i];
- a[i]=a[j];
- a[j]=temp;
- }
- }
- }
- printf("排序后是:\n");
- for(i=0;i<num;i++)
- {
- printf("%d\t",a[i]);
- }
-
- return 0;
- }
复制代码
|
|