标题:新浪的一个小题
只看楼主
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
得分:0 
以下是引用ppm88在2007-2-14 18:18:48的发言:



看程序就明白斑斑的意思:

将1-100这100个自然数放了进去,但没有找出放不进去的那个。。噢!

#include"stdio.h"
main()
{ int j,i,a[99];
for(j=0,i=1;i<=100;i++,j++)
a[j]=i;
printf("%d",a[99]);
}

我啥都不说了
你把我的程序拿回去运行一下 然后上来告诉我结果


羊肉串 葡萄干 哈密瓜!!
2007-02-14 18:51
ppm88
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1414
专家分:30
注 册:2007-1-28
得分:0 
以下是引用mp3aaa在2007-2-14 18:51:34的发言:

我啥都不说了
你把我的程序拿回去运行一下 然后上来告诉我结果



这个是结果:


2007-02-14 18:54
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
得分:0 

好! 你回去看看书 你看看当定义了int a[N];时 a[N];里面存放数据吗?


、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
int a[99];//意思是有99个数组成的一个数组

它的序列号是:a[0],a[1]……a[98]!

而没有a[99]!!

int a[n];//n>=1的情况下,它的范围是a[0]……a[n-1]!

而没有a[n]!!

这个是数组的基本定义
书上写的也是这个意思,但是现在a[99]里面有数据,你不感觉奇怪么?
我从一开始就是想说这个意思。


[此贴子已经被作者于2007-2-14 19:07:48编辑过]


羊肉串 葡萄干 哈密瓜!!
2007-02-14 19:05
ppm88
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1414
专家分:30
注 册:2007-1-28
得分:0 
以下是引用mp3aaa在2007-2-14 19:05:09的发言:

好! 你回去看看书 你看看当定义了int a[N];时 a[N];里面存放数据吗?


、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
int a[99];//意思是有99个数组成的一个数组

它的序列号是:a[0],a[1]……a[98]!

而没有a[99]!!

int a[n];//n>=1的情况下,它的范围是a[0]……a[n-1]!

而没有a[n]!!

这个是数组的基本定义
书上写的也是这个意思,但是现在a[99]里面有数据,你不感觉奇怪么?
我从一开始就是想说这个意思。



学习编程这东西,有时理解不了就是理解不了噢~~!
书看了N遍,BB说的也弄明白了~~~

2007-02-14 19:18
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
得分:0 

[QUOTE]把1-100的自然数放到a[99]这个数组里,请用最简单的方法做出1-100之间那个数没有放到a[99]这个数组里[/QUOTE]

意思是在1~100之间任选99个数字(每个数字只能选一次)存入数组,再找出1~100之间哪个数没放在里面.

我写了个逐位比较的效率不高的.

#include "stdio.h"
#define N 99
int main(void){

unsigned short int arr[N];

unsigned short int i,j,tmp,flag=0;

for(i=0;i<N;scanf("%d",&arr[i++]));

for(j=1;j<=N+1;j++){

for(i=0;i<N;i++){

if(arr[i]==j){

flag=1;

break;
}

else{

flag=0;

continue;
}
}

if(flag==0){

tmp=j;

break;
}

else

continue;

}

printf("%u\n",tmp);

return 0;

}







由于工作,N久都没来了!
2007-02-14 21:10
delpiero
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-2-8
得分:0 
对哦 为什么定义了a[99] 而a[99]里还能存放数据 这的确是个问题啊
是我没理解BB的意思

2007-02-15 09:04
ih_ks
Rank: 1
等 级:新手上路
帖 子:182
专家分:0
注 册:2007-1-1
得分:0 
#include"stdio.h"
void main()
{
int i,a[99];
for(i=0;i<=99;i++)
{
a[i]=i+1;
}
printf("%d",a[99]);
getch();
}

题目有点混乱...因为数组是从0开始的..那么a[99]的最高底数是98才对..那么我们应该算的就是那个a[99]而不是a[98]..
不知道我这样理解对不对!
2007-02-15 10:41
nick7281
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-11-13
得分:0 
以下是引用mp3aaa在2007-2-13 17:37:47的发言:

1—100好像都在a[0]——a[99]数组里

不在吧。a[99]这个数组只有99个容量嘛。不是从0--99有100个。
根据数组的定义,比如a[10],它有10个元素,分别是:a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9], 那么a[99]只有a[0],a[1],``````,a[98]的共99个元素了呀。

[此贴子已经被作者于2007-2-15 11:06:54编辑过]


2007-02-15 10:59
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
得分:0 
学编程要多上机调试,多写程序,才能进步的更快

羊肉串 葡萄干 哈密瓜!!
2007-02-15 13:45
福尔摩斯
Rank: 5Rank: 5
等 级:贵宾
威 望:12
帖 子:4011
专家分:370
注 册:2006-8-15
得分:0 
以下是引用mp3aaa在2007-2-15 13:45:21的发言:
学编程要多上机调试,多写程序,才能进步的更快

38楼说的有错

a[99]是有99个元素

但是a[0]=1,a[1]=2……是‘错’位了

我后来试了下

int a[1],i;

for(i=0;i<100,i++)

{
a[i}=i;
printf("a[%d]=%d",i,a[i]);
}

结果VC比预计的结果要多出32个

换句话说,显示到a[33]

对不起,我引用错了,楼下的

[此贴子已经被作者于2007-2-15 14:33:33编辑过]


自我放逐。。。
2007-02-15 14:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-120758-1-1.html




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

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