开灯问题用c语言获取数组长度中的数组怎么解决?

当前位置: >
> 关于C语言程序设计中的一个题目(已经排好的序的数组插入数后重新排列,该如何处理
关于C语言程序设计中的一个题目(已经排好的序的数组插入数后重新排列,该如何处理
guoguo521_2 & at
关于C语言程序设计中的一个题目(已经排好的序的数组插入数后重新排列有一个已经排好的序的数组,及今输入一个数,要求按原来排序的规律将它插入数组中。
#include &stdio.h&
void & main()
int & a[11]={1,4,6,9,13,16,19,28,40,100};
int & num,i,j;
printf( &array & a:\n &);
for(i=0;i &10;i++)
printf( &%5d &,a[i]);
printf( &\n &);
printf( &insert & data: &);
scanf( &%d &,&num);
if(num& a[9])
for(i=0;i &10;i++)
if(a[i]& num)
for(j=9;j& =i;j--)
a[j+1]=a[j];
printf( &now,array & a:\n &);
for(i=0;i &11;i++)
printf( &%5d &,a[i]);
printf( &\n &);
我要问的是。。。
if(num& a[9])
不是a[10]最大吗?
既然都定义了a[11],为什么不是a[10]呢?
插入的数num比a数组最后一个数大,讲其插入的数放在a数组末尾...
但是为什么是a[9]呢?。。。
for(j=9;j& =i;j--)
a[j+1]=a[j];
这段也不是很懂。。。
for(j=9;j& =i;j--)
a[j+1]=a[j];
这段也不是很懂。。。
-----------------------------------
if(num& a[9])
//num比a[9]大则num插入到最后
for(i=0;i &10;i++)
//如果num比a[9]小则从第一个数开始比较
if(a[i]& num)
//只到num比a[i]小则将num插入到a[i]
for(j=9;j& =i;j--)
//要把num插入到a[i]就必须把a[i]到a[9]的所有数依次后移一位
a[j+1]=a[j];
guoguojiuyaoguo & &
& & (0)(0)引用呵呵,这很简单呀。
你要先分析下算法。
对于向一个排序好的数组中插入数字,我们需要考虑两种情况:
第一:正常插入。即要插入的数字不比最大的数字大,先让比插入数字大的都向后移动,
然后再让数字插入相应的位置。
第二:非正常插入。即要插入的数字比最大的数字大,这时候不需要移动数字,只需要
直接把数字放在最大数字的后面一个里面就可以了。
你所问的就是第二种情况的处理。
因为a[9]里面存的是最大的数字,如果要插入的数字大于a[9]那么我们则需要,让a[9]
后面的元素a[10]等于要插入的数字。
所以也就有了上的语句
if(num& a[9])
a[10]= guoguoguoguoguo & &
& & (0)(0)引用
本问题标题:
本问题地址:
温馨提示:本问答中心的任何言论仅代表发言者个人的观点,与希赛网立场无关。请对您的言论负责,遵守中华人民共和国有关法律、法规。如果您的言论违反希赛网问答中心的规则,将会被删除。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-C语言二维数组,该如何解决
&来源:读书人网&【读书人网():综合教育门户网站】
C语言二维数组Mary,John,Robert,Jack,怎样把这是个名字放进二维数组name[50][20],小白一枚,求大神赐教。[解
C语言二维数组Mary,John,Robert,Jack,怎样把这是个名字放进二维数组name[50][20],小白一枚,求大神赐教。
[解决办法]二维char数组,其中的每个一维char数组放一个名字啊你就分别找出指向每个名字开头的指针,以及该名字的长度,然后依次拷贝放到name[0],name[1],name[2]...注意一下字符串结尾的'\0'问题,如果你是来直接要代码的,那就等楼下高人吧。。。[解决办法]&char&name[][20]&=&{"Mary","John","Robert","Jack"};[解决办法]char&name[4][20]&=&{"Mary",&"Jone",&"Rebort",&"Jack"};&//初始化的时候//赋值的话char&name[4][20]&=&{0};strcpy(name[0],&"Mary");strcpy(name[1],&"Jone");...C语言解决数组问题_百度知道
C语言解决数组问题
此外:void printArray(int a[N],此后e将成为0或者i大于数组的元素个数编写一个程序,编写另外一个函数来完成数组的输出, int len),函数的原型为。如果i&其中,成为首元素,e将会被插入到ai-1和ai之间,那么e将插入到数组的头部。要求编写一个函数来完成插入功能:参数i为指定的位置:int insert(int i,否则表示失败。如果i=0;函数返回非负值表示插入成功,则函数返回负值指示出错。例如;参数e为要插入的元素的值, int e):设数组为a,那么当指定在位置i插入元素e时,完成在一个一维数组中指定位置插入一个元素的功能
我有更好的答案
按默认排序
&}&&&&&&&&&if(insert(4;&&&nbsp,e允许为负数么;return&&&& 2 没有指定插入元素e的范围;&nbsp,从后往前,无法做出优化;&}&if(insert(5;&&&&;&&&}\n&&&nbsp#include&&&&&&ERR,7))&}&&&nbsp。,如何处理;ERR;&N&=&&&&&&&&&&nbsp, 这也是不得已而为之;&&%d&&&&);&nbsp。不过;printf(&&return&&&&&&&&&nbsp,sizeof(a));if(0&&&;&&&&&&&nbsp。然而,很&&printf(&&ERR;&&a[j]&&10&&&nbsp,e将是模糊不清的;&&&&&&);&&nbsp?将最后一个元素踢出;for(;&&&int&&&return&&insert(int&&&&a[j]&return&&}&nbsp,&&ERR;&nbsp,如果不指定;&&nbsp?&/*插入到头部*/&&nbsp.h&a[j-1];& 可忍受的;&void&&&nbsp。;&ERR;&&&return&&&&if(insert(1;&return&&&&nbsp,继续插入;&nbsp,那么我们将无法用一&&这里我选择的是踢出去最后一个元素;&}&& 多时候;&&&&&&&&&&&=&&printArray(int&0&&&&i&&&&&&OK;&nbsp。;int&&return&&&&&&&=&&&&nbsp,负无穷;&&return&&&ERR&&&nbsp,汉字纯手打,具体如下;&/*数组清空*/&&);ERR,发现大体能符合要求;&&&&&&&&&nbsp,1))&&&&&a[];&&&}&nbsp?要知道,只能扩大处理范围;&{&&&&&&&&&printArray(a,1))&&&if(insert(9;&&nbsp,导致此插入算法效率低下;&nbsp,4))&&printf(&quot,依次移动*/&&{&&nbsp。题意不明确;&&a[];&nbsp,3))&{&N){&&j&ERR;&&&insert(0;{&int&/*将后面的元素;return&j;&&{&len);&程序纯手写;&i&#define&&}&}&}}int&&&&&&nbsp,我们需要指定“无效值”;&&&nbsp,由于题目不明确;return&&&&&nbsp,为了保证算法的正确性;&}&e){&for(j=N-1;&&&&nbsp,&nbsp,&&&&&&&-1#define&&len){&nbsp,5))&&&&&nbsp。如果不指定范围;i;&nbsp,并调试了一下;&&&if(insert(9。&&&&&&&&insert(int&a&i++)&&&nbsp,&&if(insert(10;&}&&{&&e;{&nbsp。&ERR;/*指定数组大小*/#define&position&&return&nbsp,当N很大(如999999或更大)时;&&&&&&& 个数字代替正/负无穷;&&{&&&nbsp,3))&& &nbsp:1 如果a中元素已满;&&&nbsp。;&&{&&nbsp,3))&if(i&}&int&ERR;{&&&&&&&&ERR;&&&&&nbsp。如有疑问;&nbsp,3))&&nbsp!\n&e);&&&&ERR;i&& 3 由于原因2;a[N];int&&&&&&&&nbsp,请随时追问;&&; &nbsp,3))&nbsp,如正无穷;0int&&nbsp。;&j--)&&&&{&&&int&N);&&&nbsp,a[i]);&nbsp? 报错返回;=&&&&return&&&/*全局数组a[N]*/int&&nbsp,0x00;ERR;}这个是我自己写的;&{&&&nbsp,算法的时间效率是不&&&printf(&{&&&&OK&&&i=0;&nbsp,&printArray(int&&&&&}void&&i&}&&&main(){&&||&&if(insert(3;if(insert(5;&&&memset(a;&int&if(insert(5;&#include&lt.h&&nbsp。&nbsp
你一点都不会?先判断 i 是否&元素个数,否的话转入一个循环,这个循环将
你一点都不会?先判断 i 是否&元素个数,否的话转入一个循环,这个循环将 an放到an+1
其他类似问题
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁浅谈C语言编程中的常见错误和解决方法
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
浅谈C语言编程中的常见错误和解决方法
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口}

我要回帖

更多关于 c语言获取数组长度 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信