| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 382 人关注过本帖
标题:[求助]请教一个数组问题
只看楼主 加入收藏
gondi
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-6-26
收藏
 问题点数:0 回复次数:4 
[求助]请教一个数组问题

大家好,可不可以帮我看一下下面程序中数组“a[]”为什么是11呢?恳请指点迷津~谢谢~~

题目是这样的:10个小孩围成圈,老师发糖,分别是12,2,8,22,16,4,10,6,14,20块糖,然后,所有小孩把自己手中的糖分一半给右边的小孩,糖块数变为奇数的人,再向老师补要一块,问要经过多少次10个孩子才能拥有相同数量的糖,且糖块数各为多少。

程序如下:
main()
{
int i,n=0,f=1,a[11]={12,2,8,22,16,4,10,6,14,20};
for(i=0; i<10; i++)
printf("%4d",a[i]);
while(f)
{
f=0; n++; a[10]=a[0];
for(i=0; i<10; i++)
{
a[i]=(a[i]+a[i+1])/2;
if(a[i]%2!=0) a[i]++;
}
for(i=1; i<10; i++)
if(a[0]!=a[i])
{
f=1;
break;
}
}
printf("\nn=%d,a[1]=a[2]=...a[10]=%d\n",n,a[0]);

getch();
}

2006-10-09 16:46
xiaoyunhu
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-9-24
收藏
得分:0 
你程序中出现 a[i+1],当i=9的时候,i+1等于10,如果a的大小成10,会造成数组越界..

小晕乎
2006-10-09 16:49
gondi
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-6-26
收藏
得分:0 
原来是这样~~明白了,谢谢你~~
2006-10-09 17:09
happynise
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-10-9
收藏
得分:0 
f=0; n++; a[10]=a[0];
这句话看到没有?
a[11]={12,2,8,22,16,4,10,6,14,20};
你定义的里面是10个字,其实后面有一个默认的,
a[11]={12,2,8,22,16,4,10,6,14,20,0};
2006-10-09 17:32
liuming_88
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-10-9
收藏
得分:0 
2006-10-09 19:53
快速回复:[求助]请教一个数组问题
数据加载中...
 
   



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

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