永发信息网

C语言:已有一个升序的整型数组,要求输入一个整数后,按原来排序的规律将它插入数组中。 请问哪错了

答案:3  悬赏:0  手机版
解决时间 2022-01-01 04:23

#include "stdio.h"
int main()
{
int n,m,i=1,j,a[1127];
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&m);
for(i=1;i<=n;i++)
{
if(a[i]>=m);
{
for(j=n;j>=i;j--)
{
a[j+1]=a[j];
}
a[i]=m;
}
}
for(i=1;i<=n+1;i++)
printf("%d ",a[i]);
return 0;
}

拜托拜托
最佳答案
这句if(a[i]>=m); 这样判断不对,因为比m大的数可能是多个的,这样判断不出把m放在哪个位置。而且这句后面显然是想在后面加{}来包括整段的,所以不要分号了,放了分号表示这句已经结束,直接这样修改:
if(a[i]<=m && a[i+1]>=m)
{
for(j=n;j>=i;j--)
{
a[j+1]=a[j];
}
a[i]=m;
}
还有最后的输出这段循环要加上{}:
for(i=1;i<=n+1;i++)
{
printf("%d ",a[i]);
return 0;
}
全部回答
朋友,你的这个问题有基本的二种方法,分别为: 1、直接插入,也是就是说,我们先确定这个有序的数组是按升序还是降序,(当然得将数组下标加1)然后从头将这个数与数组里的数一一对比直到顺序确定之后,就可以插入,然后相应的数后移就可以了。 2、二分插入,基本思路是(按第1种方法操作前面的事),找到数组的中间位置,利用递归思想,再将相应一半的数组元素找到中间位置……直到确定此数位置,其后数字后移。 当然还有一些更复杂的方法,如果不是很满意,可以百度一下“数据结构排序”,就可以找到相应思想上的东西了。呵呵,不知道有没有帮到你。
下面是一个升序的整型数组,从键盘插入插入一个数,使原规律不变的编程: #include int main() { int m,i,j,t; int a[11]={1,2,4,5,7,8,9,10,22,66}; scanf("%d",&m); for(i=0;i<10;i++) if(m=i;j--) { t=a[j+1];a[j+1]=a[j];a[j]=t;} a[i]=m; } for(i=0;i<11;i++) printf("%d ",a[i]); return 0; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问,固定电话办呼叫转移怎么操作?,我在,尤其
孟母三迁的成语故事搬家的目的是为了什么
土地预审和建设用地许可之间的关系
那些收头发的人收了头发干什么
Disposing(处理)of waste has been a probl
劳务纠纷或拖欠农民工工资:中国人在国外注册
从香港机场到美国钱德勒市附近机场CHD怎么走
石油的裂解是什么变化
请问江苏财经职业技术学院、健雄职业技术学院
怎么样玩英雄联盟不卡
单选题下列我国三个经济地带的要素排序正确的
芝华士12年苏格兰威士忌的保质期是多久
身份证信息被他人冒用注册12306怎么办
某商场五一期间举行优惠销售活动,采取“满一
LOL贾克斯怎么打盖伦?真心被压的没脾气了- -
推荐资讯
我在一个川麻圈的群里打麻将,
真心真什么什么的词语
篮球怎么防守别人快攻?
惠普笔记本分屏谁知道该怎么办
为什么人思考问题时候使用的语言会跟着语言环
单选题通货紧缩是与通货膨胀的表现形式相反的
简便运算:5-[4.6-2.4*(4.75-3.25)]
单选题________peoplefinditmoreconvenient
财务软件设立明细账时需注意什么
一个狮子女昨晚她在朋友圈发了说说,她以为我
梦见和一个人坐小船 梦见自己乘坐一条小船,
会议的摄影的要点有哪些?用什么镜头好?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?