| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8365 人关注过本帖
标题:输入四个整数,要求按从小到大的顺序输出!请求改一下
只看楼主 加入收藏
ycxue46
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-4-16
收藏
 问题点数:0 回复次数:20 
输入四个整数,要求按从小到大的顺序输出!请求改一下

输入四个整数,要求按从小到大的顺序输出!请求改一下
main()
{
int i,j,k,t,a[4];
for(i=0;i<4;i++)
scanf("%d",&a[i]);
for(i=0;i<4;i++)
{
k=i;
for(j=i+1;j<4;j++)
if(a[j]<a[k])
k=j;
if(k!=i)
{ t=a[i],a[i]=a[k],a[k]=t;}
}

printf("%d",a);
}

搜索更多相关主题的帖子: 整数 顺序 从小到大 输出 请求 
2007-04-27 18:06
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
收藏
得分:0 
for(i=0;i<3;i++)
{
for(j=i+1;j<4;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}

 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-04-27 18:21
yqy231184
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-4-11
收藏
得分:0 

这是我在你程序的基础上改的,代码是
main()
{
int i,j,k,t,a[4];
for(i=0;i<4;i++)
scanf("%d",&a[i]);

for(i=0;i<4;i++)
{
k=i;
for(j=i+1;j<4;j++)
{
if(a[j]<a[k])
k=j;

if(k!=i)
{ t=a[i];a[i]=a[k];a[k]=t;}
}
}
for(i=0;i<4;i++)
printf("%4d",a[i]);
getch();
}

2007-04-27 18:38
feelings010
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-4-20
收藏
得分:0 
以下是引用I喜欢c在2007-4-27 18:21:35的发言:
for(i=0;i<3;i++)
{
for(j=i+1;j<4;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}

改了好像还是有错误,不行啊,能否再看看,谢谢!

2007-04-27 18:39
yqy231184
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-4-11
收藏
得分:0 

我觉得班主改的很好,没有错误,我运行过了
main()
{
int i,j,k,t,a[4];
for(i=0;i<4;i++)
scanf("%d",&a[i]);

for(i=0;i<3;i++)
{
for(j=i+1;j<4;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}

for(i=0;i<4;i++)
printf("%4d",a[i]);
getch();
}

2007-04-27 19:05
初心者1号
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-3-31
收藏
得分:0 
LZ写的是选择排序,斑竹的是冒泡排序。排序的方法不一样。
2007-04-27 20:55
feelings010
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-4-20
收藏
得分:0 
哦,谢谢!可能是自己运行有错误吧!
2007-04-28 00:42
ycxue46
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-4-16
收藏
得分:0 

谢谢大家.昨天太困去睡觉了,今天早上才看贴

2007-04-28 09:07
lico
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2007-1-15
收藏
得分:0 

int main(void)
{
int a[4],i,j,p;
printf("please input 4 number:\n");
for (i=0;i<=3;i++){
scanf("%d",&a[i]);}
for(i=0;i<4;i++){
for (j=i+1;j<4;j++){
if (a[i]>a[j])
p=a[i];
a[i]=a[j];
a[j]=p;
}
printf("%d\n",a[i]);
}

getch();
return 0;
}

这样做为什么输出结果不对呢
请高手指教

2007-04-28 11:15
liuminghui
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:2882
专家分:0
注 册:2007-1-26
收藏
得分:0 
冒泡排序的思想:一共要比较几趟,每趟要比较几次,你都是不知道的

海鸽 is My Lover!!
2007-04-28 11:25
快速回复:输入四个整数,要求按从小到大的顺序输出!请求改一下
数据加载中...
 
   



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

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