标题:一个任意数排序问题
只看楼主
kisaa
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-5-5
 问题点数:0 回复次数:4 
一个任意数排序问题
对输入的n(1<n<100)个数进行排序。先输入要排的个数如3,则在输入具体3个数时,要输入4个数字按回车才行,为什么?如下程序。

#include "stdio.h"
main()
{int i,n,*p;
int a[100];
printf("input n\n"); //输入排序个数
scanf("%d",&n);
printf("you insert n are\n ");
p=a;
for(i=0;i<n;i++)
scanf("%d\t",p++); //要排的数
p=a;
paixu(p,n);
for(i=0;i<n;i++)
printf("%d\t",*p++);
}
paixu(int *p,int n)
{int i,j,k,temp;
for(i=0;i<n-1;i++)
{for(j=0;j<n-i;j++)
{if(*(p+j)<*(p+j+1))
{temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;}
}
}
return;
}
搜索更多相关主题的帖子: printf scanf pai insert 
2007-05-05 17:36
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
得分:0 

为什么都是这样的问题啊,你把scanf里的\t去了就ok了,想不换行你直接打空格就是了,不过最后要必需打enter
如我输入3个n=3
....are 1 3 6 (中间的空格打几个都没问题)最后要回车结束!!!!!!!!!!!


偶是菜鸟鸟偶惧WHO?!!!!
2007-05-05 19:42
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
paixu(p,n);
for(i=0;i<n;i++)
//我情愿再在这里加个p=a;虽然不加不会错.
printf("%d\t",*p++);

倚天照海花无数,流水高山心自知。
2007-05-05 21:41
wysaijun
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-4-25
得分:0 
不懂你说的意思是什么
2007-05-05 22:02
wysaijun
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-4-25
得分:0 
我调了一下,也觉得把scanf里的\t去了就ok了
没必要在scanf里加\t
还有就是在输出语句前加上p=a这一句是有必要的
我个人觉得这个排序可以稍微改一下,呵呵,我也是个新手
2007-05-05 22:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-137087-1-1.html




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

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