永发信息网

c语言,输入自然数,奇数从大到小排序,偶数从小到大,输出。

答案:4  悬赏:0  手机版
解决时间 2021-03-29 16:14
c语言,输入自然数,奇数从大到小排序,偶数从小到大,输出。
最佳答案
你是指数据还是代码本身,你代码能编译成功吗?代码本身有没有提示错误吗?我看你连一些基本库文件都没有加,而且还没有代码怎么退出输入状态,是要等所有的数组填满吗,有时候会不可能的!而且排序算法用错了。

这里修改了你一小部分代码:(退出输入状态是在最后的输入数字后面加上"\n"的\n才能退出)
代码如下:

#include
#include
void main()
{
int a[100]={0},b[100]={0},c;
int i=0,j=0,t,n,m;
while (i>=0)
{
if(!scanf("%d",&c))
break;
else
{
if(c%2==0)
a[i++]=c;
else
b[j++]=c;
}
}
for(m=0;m {
for (t=0;t {
if(a[t]>a[t+1])
{
n=a[t];
a[t]=a[t+1];
a[t+1]=n;
}
}
}
for(m=0;m printf("%d\t",a[m]);

for(m=0;m {
for (t=0;t if(b[t] {
n=b[t];
b[t]=b[t+1];
b[t+1]=n;
}
}
printf("\n");
for(m=0;m printf("%d\t",b[m]);
system("pause");
}
全部回答

#include
int main() {
int Evens[100],Odds[100];
int num,ne = 0,no = 0,i,j,k,t;
while(scanf("%d",&num) == 1) { // 将奇偶数分放在两个数组中
if(num < 0) break; // 自然数不小于0
if(num % 2) Odds[no++] = num;
else Evens[ne++] = num;
}
for(i = 0; i < no - 1; ++i) { // 奇数降排序
k = i;
for(j = i + 1; j < no; ++j) {
if(Odds[k] < Odds[j])
k = j;
}
if(k != i) { t = Odds[k]; Odds[k] = Odds[i]; Odds[i] = t; }
}
for(i = 0; i < ne - 1; ++i) { // 偶数增排序
k = i;
for(j = i + 1; j < ne; ++j) {
if(Evens[k] > Evens[j])
k = j;
}
if(k != i) { t = Evens[k]; Evens[k] = Evens[i]; Evens[i] = t; }
}
for(i = 0; i < no; ++i) printf("%d ",Odds[i]);
for(i = 0; i < ne; ++i) printf("%d ",Evens[i]);
printf("\n");
return 0;
}
while语句中,if里面的判断条件不能跳出循环,你换其他的方法试试,还有第三个和第四个for循环应该是t我用的输入一个字符'y'跳出循环
char d='y';
while(i>=0)
{
scanf("%d",&c);
if(c%2==0)
a[i++]=c;
else
b[j++]=c;
if(d==getchar())
break;
}
int main()//这里一定要用int,这是标准写法
{
int a[100]={0},b[100]={0},c;
int i=0,j=0,t,n;
while (i>=0)
{
if(!scanf("%d",&c))
break;
else
{if(c%2==0)
a[i++]=c;
else
b[j++]=c;
}
}
for(t=0;t if(a[t]>a[t+1]){ n=a[t],a[t]=a[t+1],a[t+1]=n;}//这里加个大括号
for(t=0;t printf("%d",a[t]);
for(t=0;t if(b[t] for(t=0;t printf("%d",a[t]);
return 0;
}
//提示,像for,while,if等语句,最好加上大括号,不要为了一时省事就不写,否则你的错误不好找呀。。。。。。。
//要养成一个好习惯。。。还有不要忘了加一个头文件,如果是c就加个#include
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
暗黑破坏神2要求配置?
"couldn't open " 为什么是过去?could是
罗定素龙客运站这个地址在什么地方,我要处理
尼采超级五手机怎么样?
西藏那曲的海拔多少,有好玩的地方没?
中华儿女为祖国作贡献的事迹
问师父:怎样才算真正皈依佛门
我佩服一种人说忘就能忘的人
菩萨供桌前点七盏酥油灯代表什么意思?
华为手机管家为什么老久都不升级
单选题在下列常用词语中字形完全正确的一项是
绝地求生登录不进去,然后一直就显示这样;电
kalewensen皮带多少钱
烤箱外面很烫里面烤东西是不是很慢
关羽长什么样?
推荐资讯
车身稳定系统vsc和vsa有什么区别
强烈推荐松下按摩椅哪个型号好,强烈推荐松下
空调1hz和15hz的区别
货币的五种职能应该怎样区分?
为什么狗狗的眼睛红色的还有肉长出来
举起你平常用来写字的那只手,然后用食指在前
右手托脸含笑凝望是什么意思男女之间的问题
双珠挂金钩,天下任它玩,请客先请它,天下的
耳钉10mm与8mm有什么区别?
什么叫SPEC,关于FPGA 设计的
芜湖的高铁站和火车站在一起吗?
44x2十44x22十4444的简便方法
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?