| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 708 人关注过本帖
标题:新手初来咋到,关于起泡排序法!!
只看楼主 加入收藏
hikoeb8
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-2-12
结帖率:0
收藏
已结贴  问题点数:5 回复次数:6 
新手初来咋到,关于起泡排序法!!
#include<stdio.h>
void main()
{
int a[8],i,j,t;
printf("pls input 8 numbers:\n");
for(i=0;i<8;i++)
scanf("%d",&a[8]);
for(i=0;i<7;i++)
for(j=0;j<7;j++)
if(a[j]>a[j+1])
{
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
for(i=0;i<8;i++)
printf("%d",a[i]);
}这个起泡排序法是不是很多错误啊,我的电脑上面能显示出来但是没有结果的,回车了就是空的一排,求大神解答啊,我是菜鸟,才学的C,就挂科了,第一学期都没看,现在在家自学,马上开学了,想迅速提高,往高手些帮忙。。。。
搜索更多相关主题的帖子: numbers 
2012-02-12 16:11
ljl123970
Rank: 2
等 级:论坛游民
帖 子:31
专家分:42
注 册:2012-1-30
收藏
得分:1 
第七行 scanf("%d",&a[8]);
a[8]改为a[i]

最后打印 改下 添加个换行或跳格好看点 printf("%d\t",a[i]);


[ 本帖最后由 ljl123970 于 2012-2-12 16:31 编辑 ]
2012-02-12 16:29
tt7721
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:60
专家分:107
注 册:2011-8-7
收藏
得分:1 
按照楼上的方法可以输出正确结果。
但是不是很好 你看下面
for(i=0;i<7;i++);
for(j=0;j<7;j++);
这两行
第一行 意思是进行七次循环,进行九趟比较。
第二行 意思是没意思循环进行比较的次数。很明显,第一趟循环  八个数应该比较7次。第二趟循环应该比较6次。因为最大的数已经沉底了。下面的一次类推。
也就是说第二句程序可以改成(j=0;j<7-i;j++);
这样可以提高代码的效率吧
2012-02-12 17:13
hikoeb8
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-2-12
收藏
得分:0 
谢谢楼上两位的指点,但是我的电脑还是不能显示出程序运行结果,哎,可能是我的VC有问题吧,我再重装试试,你们能不能读出来啊,我的是XP的系统。
2012-02-12 18:18
hikoeb8
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-2-12
收藏
得分:0 
我明白了,原来是我输入的时候是一串数字,怪不得不能显示,哎,只怪自己傻啊
,谢谢了,楼上的两位!!
2012-02-12 19:28
老王子
Rank: 2
等 级:论坛游民
帖 子:34
专家分:43
注 册:2011-2-11
收藏
得分:1 
scanf("%d",&a[8]);
改为scanf("%d",&a[i]);
每输入一个数字,要加一个空格,或回车一次

2012-02-12 20:53
zxd675816777
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:252
专家分:631
注 册:2012-2-3
收藏
得分:1 
啊,我们开学了饿,。。

数学好难!
2012-02-12 21:57
快速回复:新手初来咋到,关于起泡排序法!!
数据加载中...
 
   



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

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