|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 刚学完数组的选择排序,请问这个顺序输出的哪里错了?怎么不能输出正确答案?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
344
人关注过本帖
标题:
刚学完数组的选择排序,请问这个顺序输出的哪里错了?怎么不能输出正确答案 ...
只看楼主
加入收藏
QQ973333859
等 级:
新手上路
帖 子:1
专家分:0
注 册:2012-4-25
结帖率:
0
楼主
收藏
已结贴
√
问题点数:20 回复次数:2
刚学完数组的选择排序,请问这个顺序输出的哪里错了?怎么不能输出正确答案?
}#include<stdio.h>
void main()
{
int a[6]={3,8,4,1,6,9},i,p,j,t;
for(i=0;i<5;i++)
{
p=i;
for(j=i;j<5;j++)
{
if(a[p]<a[j])
{
t=a[p];
a[p]=a[j];
a[j]=t;
p=j;
}
printf("%d",a[p]);
}
}
}
搜索更多相关主题的帖子:
正确答案
2012-04-25 23:42
举报帖子
使用道具
赠送鲜花
share32
等 级:
黑侠
帖 子:214
专家分:663
注 册:2011-12-1
第
2
楼
收藏
得分:10
#include<stdio.h>
void main()
{
int a[6]={3,8,4,1,6,9},i,p,j,t;
for(i=0;i<6;i++)
{
p=i;
for(j=i;j<6;j++)
{
if(a[p]<a[j])
{
t=a[p];
a[p]=a[j];
a[j]=t;
}
}
printf("%2d",a[p]);
}
}
对比一下看看
2012-04-25 23:51
举报帖子
使用道具
赠送鲜花
S_Ringo
来 自:歌舞伎町
等 级:
业余侠客
帖 子:94
专家分:230
注 册:2012-4-15
第
3
楼
收藏
得分:10
不论是从大到小还是从小到大,你应该输出的是6个数吧?
所以你最大的问题在于你把printf()函数放在了for(j=0;……)这个循环里,因此,你自己分析一下就ok了,
实际上你输出的次数是5+4+3+2+1=15次;
其实,你自己输出不对的话,自己应该首先试着多排查,你这个原程序显然输出个数不对,那么你就找循环的错误,要是输出个数正确,顺序不对,你再找算法的错误……
还有,对于这种简单的程序,大脑完全可以模拟计算机的单步调试,从i=0,j=0开始一步步来,多练习没问题的……
另外,2L正解……
2012-04-26 09:04
举报帖子
使用道具
赠送鲜花
3
1/1页
1
快速回复:
刚学完数组的选择排序,请问这个顺序输出的哪里错了?怎么不能输出正确 ...
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.016670 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved