搜索
查看: 981|回复: 3
打印 上一主题 下一主题

起泡法排序咋输出不行呢???

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-6 18:37:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#define N 10
void main()
{int a[N+1];  int i,j,t;
  printf("input 10 numbers:\n");
  for(i=1;i<=N;i++)
    scanf("%d,&a");
   printf("\n");
for(j=1;j<=N-1;j++)
  for(i=1;i<=N-j;j++)
   if(a>a[i+1])
  {t=a;a=a[i+1];a[i+1]=t;}
  printf("the sorted number:\n");
    for(i=1;i<=N;i++)
    printf("%d",a);
  
system("pause");
return 0;
}

沙发
发表于 2013-8-6 19:16:17 | 只看该作者
本帖最后由 rosynirvana 于 2013-8-6 19:17 编辑

for(i=1;i<=N;i++)
    scanf("%d,&a");

这里开始就错了

  1. int a[N];
  2. for(i=0;i<N;i++)
  3.     scanf("%d",&a[i]);
复制代码
或者

  1. int a[N];
  2. for(i=0;i<N;i++)
  3.     scanf("%d",a+i);
复制代码
都可以
不要跟着老谭学把数组第一个位置丢掉

for(j=1;j<=N-1;j++)
  for(i=1;i<=N-j;j++)
   if(a>a[i+1])
  {t=a;a=a[i+1];a[i+1]=t;}
这里也不对,i j写混了。另外和上面的错误一样,一直在交换首地址
  1. for(i=0;i<=N-1;i++)
  2.   for(j=0;j<N-i-1;j++)
  3.    if(a[j]>a[j+1]){
  4.    t=a[j];
  5.   a[j]=a[j+1];
  6.   a[j+1]=t;
  7.   }
复制代码
最后的输出
  1. for(i=0;i<N;i++)
  2.     printf("%d ",a[i]);
复制代码
最后,记住是int main,不要写void main
板凳
 楼主| 发表于 2013-8-8 20:58:10 | 只看该作者
rosynirvana 发表于 2013-8-6 19:16
for(i=1;i

谢谢了。。老师。。。。
地板
发表于 2013-8-9 08:45:53 | 只看该作者
{:soso_e113:}学习了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表