| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 751 人关注过本帖
标题:我做了一个冒泡排序,每次运行都不是我自己输入的数字,求指教
只看楼主 加入收藏
蓝莲花zx
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-1-24
结帖率:0
收藏
已结贴  问题点数:20 回复次数:9 
我做了一个冒泡排序,每次运行都不是我自己输入的数字,求指教
int i = 0,a[i];
    int count;
   
    int j;
    printf("请输入要排序的数目");
    scanf("%d",&count);
   
for (i=0; i<count; i++) {
    printf("请输入要排序的数 ");
    scanf("%d",&a[i]);
    }printf("\n");
    printf("从小的数值是" );

    for (j=0; j<count-1; j++)
    {

        for (i=0; i<=count-j-1; i++)
        {
            if (a[i]>a[i+1])
            {
                int temp;
                temp=a[i];
                a[i]=a[i+1];
                a[i+1]=temp;
            
            }
       }
    }
for (i=0; i<count; i++)
    {
        printf("%d ",a[i]);
    }
    return 0;
搜索更多相关主题的帖子: count 
2013-01-24 15:50
蓝莲花zx
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-1-24
收藏
得分:0 
这个是运算结果,每次都是,输入的与呈现的数不一致啊!!
请输入要排序的数目4
请输入要排序的数 32
请输入要排序的数 44
请输入要排序的数 2
请输入要排序的数 1

从大到小的数值是1 2 24 32
2013-01-24 15:51
羽VS翼
Rank: 2
等 级:论坛游民
帖 子:26
专家分:43
注 册:2013-1-17
收藏
得分:3 
你自己定义的数组有问题,a[i]怎么可以这么定义数组啊。定义成int*就可以了;
还有就是你的for (j=0; j<count-1; j++)其中a[i+1]越界了
     {
 
        for (i=0; ,,i<=count-j-1、、; i++)
         {
             if (a[i]>a[i+1])
             {
                 int temp;
                 temp=a[i];
                 a[i]=a[i+1];
                 a[i+1]=temp;
            
             }
        }
2013-01-24 16:45
大米稀粥客
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:155
注 册:2013-1-8
收藏
得分:3 
学习
2013-01-24 17:15
ksddah
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:53
专家分:135
注 册:2012-12-11
收藏
得分:3 
3楼正确
2013-01-24 17:27
Teem
Rank: 2
来 自:广东
等 级:论坛游民
帖 子:54
专家分:36
注 册:2012-12-24
收藏
得分:3 
void main ()
{
    int a[i];  //这里的i=0可以先不定义,因为在循环句中定义了
    int count;
    int j, i;
    int temp;   //变量先定义
     printf("请输入要排序的数目");
     scanf("%d",&count);
     
for (i=0; i<count; i++)
{
     printf("请输入要排序的数 ");
     scanf("%d",&a[i]);
}
    printf("\n");
    printf("从小的数值是" );
    for (j=0; j<count-1; j++)
     {
        for (i=0; i<count-1-j; i++)
         {
             if (a[i]>a[i+1])
             {
                 temp=a[i];
                 a[i]=a[i+1];
                 a[i+1]=temp;
            
             }
        }
     }
 for (i=0; i<count; i++)
     {
         printf("%d ",a[i]);
     }
     return 0;
}
  稍微有些改动,  你试试看行不

                                  ~~~~ 天道酬勤
2013-01-24 20:05
鬼泣小狼
Rank: 1
等 级:新手上路
帖 子:3
专家分:8
注 册:2013-1-24
收藏
得分:3 
这是我前几天写的写的不好的地方请指正一下,
/*
冒泡排序及动态数组的构造
鬼泣--小狼
2012-1-21
*/

#include<stdio.h>
#include<malloc.h>

int main(void)
{
  int *p, i, t, j, c;
  p = (int*)malloc(5*sizeof(int));
  for(i=0; i<5; ++i)
     *(p+i) = i;
  for(j=0; j<4; ++j)  
     {
        i = 0;
        for(c=0; c<4; ++c)
          {
              if((*(p+i))<(*(p+i+1)))
                 {
                     t = *(p+i);
                     *(p+i) = *(p+i+1);
                     *(p+i+1) = t;
                 }
               ++i;
         }
     }
 for(i=0; i<5; ++i)
    printf("%d\n", *(p+i));
 free(p);
 return 0;
}

/*
2012-1-21
c-free5.0运行通过
输出结果:4 3 2 1 0
*/
这是我前几天写的写的不好的地方请指正一下,

[ 本帖最后由 鬼泣小狼 于 2013-1-24 22:58 编辑 ]
2013-01-24 22:43
鬼泣小狼
Rank: 1
等 级:新手上路
帖 子:3
专家分:8
注 册:2013-1-24
收藏
得分:0 
不好意思,六楼那里没错。太久不用静态数组了忘记了,干才在c-free5.0运行int [i];没有语法错误
2013-01-24 22:51
炎黄宇宙
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:53
专家分:104
注 册:2012-11-12
收藏
得分:3 
回复 楼主 蓝莲花zx
不看其它,只看第一句就不对;
2013-01-25 11:45
千鸟
Rank: 2
来 自:重庆南岸
等 级:论坛游民
帖 子:11
专家分:34
注 册:2013-1-25
收藏
得分:3 
我在想这个程序怎么不会报错

学c,就是兴趣加实践。
2013-01-25 16:56
快速回复:我做了一个冒泡排序,每次运行都不是我自己输入的数字,求指教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020079 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved