回 帖 发 新 帖 刷新版面

主题:新手请教

[size=3]给一维数组定义时赋初值,如:
int a[10]={1,2,3,4};
前四个元素的值已确定,后面6个元素的值全部为0还是不确定??
因为在书上看到:此种情况则后面的元素值全部为0,但是在一些程序中后6个元素的值却不确定,就如下面的:
#include<stdio.h>
main()
{
 int i,t;
 long f[20]={1,1}; /*定义一个20项的一维数组*/
 scanf("%d",&t);/*输入数控制输出项*/
 for(i=2;i<20;i++)
 f[i]=f[i-1]+f[i-2]; /*等于前两项之和*/
 for(i=0;i<t;i++) /*控制输出的循环*/
 {
 if (i%5==0) /*每5项就换一次行*/
 printf("\n");
 printf ("%5d",f[i]);
 }
 getch();
}
这是斐波那契数列,定义f数组的时候,也只是给前两个元素赋初值,为什么后面的元素值不为0呢???难道就是因为后面还有赋值语句的原因???
麻烦高手解释一下,十分感谢![/size][em18][em18][em18]

回复列表 (共7个回复)

沙发

后面的元素初始化为0

板凳

#include<stdio.h>
main()
{
 int i,t;
 long f[20]={1,1}; /*定义一个20项的一维数组*/
 scanf("%d",&t);/*输入数控制输出项*/
 for(i=2;i<20;i++)
 f[i]=f[i-1]+f[i-2]; /*等于前两项之和*/
 for(i=0;i<t;i++) /*控制输出的循环*/
 {
 if (i%5==0) /*每5项就换一次行*/
 printf("\n");
 printf ("%5d",f[i]);
 }
 getch();
}
高手,还有一疑问,这是斐波那契数列,定义f数组的时候,也只是给前两个元素赋初值,为什么后面的元素值不为0呢???

3 楼

因为下边有赋值语句:
for(i=2;i<20;i++)
 f[i]=f[i-1]+f[i-2];

4 楼


为零,,

5 楼

书上都说,如果只初始化数组前面的几个元素,那么后面的都将被初始化为0.

6 楼

[quote]书上都说,如果只初始化数组前面的几个元素,那么后面的都将被初始化为0.[/quote]
谢谢你的回答,我也知道书上说的,请仔细看一下我的问题。

7 楼


未定义时默认为0  但是此程序有以下赋值语句
for(i=2;i<20;i++)
 f[i]=f[i-1]+f[i-2];

我来回复

您尚未登录,请登录后再回复。点此登录或注册