| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 814 人关注过本帖
标题:一个数组问题
只看楼主 加入收藏
编程达人
Rank: 2
等 级:论坛游民
帖 子:62
专家分:66
注 册:2011-8-11
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:13 
一个数组问题
#include <stdio.h>
void main()
{
      int  i,a[20];   
      a[20]={1,1};
   for(i=2;i<20;i++)
   {
        a=a[i-1]+a[i-2];
        printf("%d\n",a);
   
   }

}
大侠们帮忙看看错在哪里???
 

搜索更多相关主题的帖子: include 
2011-09-03 13:33
ppfly
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:297
专家分:1956
注 册:2009-5-17
收藏
得分:0 
printf("%d\n",a);
改为printf("%d\n",a[i]);

********多贴代码,少说空话*******
2011-09-03 13:45
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:0 
  是不是这样?      
a[i]=a[i-1]+a[i-2];
printf("%d\n",a[i]);

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2011-09-03 14:13
vesapro
Rank: 2
等 级:论坛游民
帖 子:11
专家分:27
注 册:2011-8-29
收藏
得分:0 
#include <stdio.h>
void main()
{
      int  i,a[20];   
      a[20]={1,1};    // 下标越界
   for(i=2;i<20;i++)
   {
        a=a[i-1]+a[i-2];    //a是地址, a[]是元素,不能进行赋值运算
        printf("%d\n",a);    //printf()的参数不能是地址,输出字符串除外。
   
   }

}
2011-09-03 16:27
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
同意楼上
a是地址为常数不能作为左值
2011-09-03 16:39
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
回复 楼主 编程达人
1.2楼上正解

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-03 16:42
xhl986213688
Rank: 2
等 级:论坛游民
帖 子:27
专家分:32
注 册:2011-9-2
收藏
得分:0 
同意四楼,确实如此。
2011-09-03 17:33
exo1991
Rank: 2
等 级:论坛游民
帖 子:66
专家分:98
注 册:2011-8-30
收藏
得分:0 
你看是不是应该这样:
#include <stdio.h>
void main()
{
      int  i,j,a[20];    /*加入一个整型变量*/  
      a[20]={1,1};
   for(i=2;i<21;i++)     /*将原来的20改为21*/
   {
        j=a[i-1]+a[i-2]; /*将其中的a该为j */
        printf("%d\n",j);
   
   }

}
2011-09-03 20:29
khaz
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:130
专家分:188
注 册:2011-4-21
收藏
得分:0 
int a[20];已经声明过了
下面就不能对a进行初始化了

应该写成
#include <stdio.h>
int main()
{
      int  i,a[20]={1,1};
     for(i=2;i<20;i++)
   {
        a=a[i-1]+a[i-2];
        printf("%d\n",a);
   
   }
    return 0;
}
2011-09-03 23:30
短暂的生命
Rank: 1
等 级:新手上路
帖 子:8
专家分:9
注 册:2011-8-31
收藏
得分:5 
#include <stdio.h>
void main()
{
int i,j,a[20]; /*定义a数组有20个元素,是a[0]~a[19],不是a[1]~a[20]
*/
a[20]={1,1};/*表示只对前两个元素赋值,即a[0]=1,a[1]=1,这种赋值方式只能出现在初始化中,就是定义数组的同时赋值,所以这句是错的,应放到上面*/
for(i=2;i<20;i++) /*将21改为20,表示直到调用a[19]后结束*/
{
j=a[i-1]+a[i-2];
printf("%d\n",j);
}
}




正确代码:
#include <stdio.h>
void main()
{
int i,j,a[20]={1,1};
for(i=2;i<20;i++)
{
j=a[i-1]+a[i-2];
printf("%d\n",j);
}
}
结果为:

2
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2011-09-04 00:51
快速回复:一个数组问题
数据加载中...
 
   



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

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