大神,这段冒泡排序的代码错在哪,能否指点一下?
#include<stdio.h>int main(void)
{
int a;
int i,j,k,n;
printf("请输入你所需要排序的数的个数:");
scanf("%d",&n);
for(i = 1;i <= n;i++)
{
scanf("%d",&a);
}
for(i = 1;i <=n - 1;i++)
{
for(j = 1;j < n - i;j++)
{
if(a < a)
{
k = a;
a = a;
a = k;
}
}
}
for(i = 1;i <= n; i++)
printf("%d ",a);
getchar();
getchar();
return 0;
} 首先我不是大神,我只是曾经学过一遍C语言,我觉得代码如下就正确了,请你自己验证{:5_110:}
#include<stdio.h>
int main(void)
{
int a;
int i,j,k,n;
printf("请输入你所需要排序的数的个数:");
scanf("%d",&n);
//getchar();
for(i = 1;i <= n;i++)
{
scanf("%d",&a);
}
for(i = 1;i <=n-1;i++)
{
for(j = 1;j <= n - i;j++)
{
if(a < a)
{
k = a;
a = a;
a = k;
}
}
}
for(i = 1;i <= n; i++)
printf("%d ",a);
getchar();
return 0;
}
说下修改之处呀:只不过是在内层的for循环中加了一个等于号。至于为什么加等于号,我举个例子:比如你输入4-》就代表要有4个数进行排序-》那么第一次排序是1和2,2和3,3和4也就是3次循环-》所以规律是:第i次循环,循环n-i次,所以要加等于号!
那个如果我写的不对请回复你这代码不对
如果对了的话,给个最佳答案吧!谢谢啦{:5_102:} 我可以问一下那个getchar();存在的意义是啥,防bug吗
页:
[1]