c语言编程题库:已知五个整数,已经由大到小排好序,现输入一个数,将其插入到该数组适当位置,使其仍然有序。

没有更多推荐了,
不良信息举报
举报内容:
C语言学习,有一个已排好序的数组,要求输入一个数字后,按原来的排序规律将它插入数组
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!已知一组整型数据已按从小到大排列好,现任意输入一个整数,请按原来排序的规律将它插入到数组中,求教。_百度知道
已知一组整型数据已按从小到大排列好,现任意输入一个整数,请按原来排序的规律将它插入到数组中,求教。
#include &stdio.h&
int a[10]={1,3,5,8,9},i,n;
scanf(&%d&,a[5]);
for(i=5,n=0;i&=1;i--)
if(a[i-1]&a[i])
a[i]=a[i-1];
for(i=0;i&=5;i++)
printf(&%d &,a[i]);
我有更好的答案
scanf(&%d&,&a[5]);//少了&
谢谢回答,请问一。a[5]到底是 地址指向的数据 还是 仅仅是一个地址二。a 是否既指a[0]的值又指数组a[]的首地址呢?三。scanf(&%d&,&a[5]) printf(&%d&,&a[5]),这样写对吗?
a[5] 是一个数据a 是本来是首地址 ,那么肯定指向a[0] ,应为 &a[0] 等价于aprintf(&%d&,a[5]); //这里是打印a[5]的值
采纳率:71%
来自团队:
scanf(&%d&,&a[5]);//少了&
scanf(&%d&,&a[5]);//少了&
scanf(&%d&,a[5]);漏了&
谢谢回答,请问一。a[5]到底是 地址指向的数据 还是 仅仅是一个地址二。a 是否既指a[0]的值又指数组a[]的首地址呢?三。scanf(&%d&,&a[5]) printf(&%d&,&a[5]),这样写对吗?
你是在什么软件环境下进行这样的操作?
其他2条回答
为您推荐:
其他类似问题
整型数据的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。用C语言解决 将一个从键盘输入的数插入到一个排好序的长度为10的数组里面,要求插入后仍然有序_百度知道
用C语言解决 将一个从键盘输入的数插入到一个排好序的长度为10的数组里面,要求插入后仍然有序
我有更好的答案
#include&&stdio.h&int&main()&{ int&a[10]&=&{1,2,3,5,6,7,8,9,10}; int&i,j,x&=&4,n&=&9; printf(&原数组:\n&); for(i&=&0;&i&&&n;&++i)
printf(&%d&&,a[i]); printf(&\n&); for(i&=&0;&i&&&n;&++i)&{
if(a[i]&&&x)&{
for(j&=&n;&j&&&i;&--j)
a[j]&=&a[j&-&1];
} } if(i&&=&n)&{
++n; } printf(&插入元素4后:\n&); for(i&=&0;&i&&&n;&++i)
printf(&%d&&,a[i]); printf(&\n&); return&0;}
插入数据后不应该是一个含11个元素的数组吗
原来是9个。
采纳率:67%
装不下了,怎么办?数组,还能扩大?--------采纳答案中,对 10 个元素的数组,仅定义了 9 个数据。在显示时,也仅仅显示了 9 个数据。第 10 个元素,没有显示出来。显然,这第 10 个元素,也并没有参加排序。那么,这就不满足题目所要求的条件:《一个排好序的长度为10的数组》。实际上,采纳答案,是插入到一个排好序的长度为9的数组里面了。
为您推荐:
其他类似问题
键盘输入的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。有一以排好序的数组(一维,从小到大),现插入一个元素,保持该数组仍然有序_百度知道
有一以排好序的数组(一维,从小到大),现插入一个元素,保持该数组仍然有序
我有更好的答案
public&static&void&main(String&args[]){&&&&int[]&a&=&{1,2,3,4,5,6,8,9,10};&&&&int&b&=&7;&&&&int[]&c&=new&int[a.length+1];&&&&for(int&j=0;j&a.j++){&&&&&&&&c[j]=a[j];&&&&}&&&&&&//从后面开始,如果比倒数第二个数大,那就将新加入的数填在倒数第一的位置,否则倒数第二的数位置后移&&&&for(int&i&=c.i&=0;i--){&&&&&&&if(b&c[i-2]){&&&&&&&&&&&c[i-1]=b;&&&&&&&&&&&&&&&&&&}else{&&&&&&&&&&&c[i-1]=c[i-2];&&&&&&&}&&&&}&&&&for(int&j&=&0;j&c.j++){&&&&&&&&System.out.print(c[j]);&&&&}}
采纳率:30%
什么语言,c吗?你等等,编码ing写好了:#include&stdio.h& #define LEN 10 /*用宏定义数组的最大长度*//*输出数组a*/void pr(int a[]){for(i=0;i&LEN;i++)printf(&%d,&,*a++);printf(&\n&);}/*插入一个元素*/void insert(int a[],int b){int i,j;/*定义两个用于for循环的变量*/for(i=0;i&LEN-1;i++){/*遍历数组*/if(b&=a[i]&&b&a[i+1]){/*寻找到一个大于或等于插入元素并且下一个位置大于插入元素的数组下标*/for(j=LEN-1;j&i;j--){a[j]=a[j-1];}/*将插入点后的元素后移一个位置*/a[i+1]=b;/*将插入元素插入*//*跳出遍历数组*/}}}/*入口主函数*/void main() { int a[LEN]={5,6,9,10,22,23};/*定义一个数组并初始化一部分值*/pr(a);/*显示数组*/insert(a,12);/*按大小插入一个元数12*/pr(a);/*显示插入后的数组*/}TC 2.0 调试结果:5 6 9 10 22 23 0 0 0 05 6 9 10 12 22 23 0 0 0感言:好久都没写了,生疏了,唉,不应该啊…谢谢你给这个机会。。。
本回答被提问者和网友采纳
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 c语言编程题目 的文章

 

随机推荐