| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 767 人关注过本帖
标题:为什么这个程序的运行结果是这样的,求解..
只看楼主 加入收藏
liangrongye
Rank: 1
等 级:新手上路
帖 子:5
专家分:5
注 册:2011-12-14
收藏
得分:0 
回复 7楼 林月儿
sorry,我运行完没想改函数名,那是次要的,可还是看着碍眼就改了忘了
2015-04-29 21:00
cangogo
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2015-4-28
收藏
得分:0 
回复 5楼 林月儿
嗯,我知道。但我不解int i,length=7,a[N]={586,513,489,284,106,46,24};为什么这个声明却不可以得到正确结果,你看看,好奇怪喔= =...是内存存入原理吗,唉。
2015-04-29 21:02
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 11楼 liangrongye
怪我咯

剑栈风樯各苦辛,别时冰雪到时春
2015-04-29 21:02
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
收藏
得分:5 
#include "stdio.h"
#define N 8
void paixu(int k,int *a,int n);
main()
{
int i,a[N]={586,513,489,284,106,46,24};
printf("the former array is:\n");
for(i=0;i<N-1;i++)
printf("%-5d",a[i]);
printf("\ninput a Num:");
scanf("%d",&i);
paixu(i,a,N-1);
for(i=0;i<N;i++)
printf("%-5d",a[i]);  
}
void paixu(int k,int *a,int n)
{
  int j;
  j=n-1;
  while(j>=0&&k>a[j])
     a[j+1]=a[j--];
  a[j+1]=k;
}
收到的鲜花
  • cangogo2015-04-29 21:28 送鲜花  1朵   附言:谢谢大哥。
2015-04-29 21:05
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 12楼 cangogo
还是数组初始化时你选的下标范围,以及当前使用长度
还有就是有效长度
比如,int a[5]={1,2,3};
那么这里数组所有元素为a[0]=1,a[1]=2,a[2]=3,a[3]=0,a[4]=0
只对前三个作赋值操作,你再处理后面的元素就多余了
这也是为什么加length这个存储数组有效长度的变量

剑栈风樯各苦辛,别时冰雪到时春
2015-04-29 21:08
cangogo
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2015-4-28
收藏
得分:0 
回复 15楼 林月儿
......我知道你的意思,有效长度和实际数组分配内存长度的问题我懂。可是我不太解的是length这个变量的声明顺序位置为什么会影响到运行结果。我试了好几个length的声明位置。像intlength=7 ,i,a[N]={586,513,489,284,106,46,24};或者int i,length,a[N]={586,513,489,284,106,46,24}; length=7;或者你那样的i,a[N]={586,513,489,284,106,46,24},intlength=7 ;都可以运行得到正确结果。然而int i,length=7,a[N]={586,513,489,284,106,46,24}; 这种顺序位置的声明却得到错误的结果,其他代码一概没动过...所以我好奇为什么会有这种原因,还是就我的编辑器有问题,不然你试试看看。
2015-04-29 21:35
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 16楼 cangogo
下面打印前有没有执行length++?

剑栈风樯各苦辛,别时冰雪到时春
2015-04-29 21:42
cangogo
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2015-4-28
收藏
得分:0 
回复 17楼 林月儿
就是你那个程序代码除了像那样改变了一下length的变量声明位置,其余的一概没变动过...
2015-04-29 21:45
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 18楼 cangogo
恩,解决了就好

剑栈风樯各苦辛,别时冰雪到时春
2015-04-30 13:32
快速回复:为什么这个程序的运行结果是这样的,求解..
数据加载中...
 
   



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

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