| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1020 人关注过本帖
标题:全局变量
只看楼主 加入收藏
丘山君
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:87
专家分:154
注 册:2017-11-15
结帖率:54.55%
收藏
已结贴  问题点数:20 回复次数:1 
全局变量
有个小程序,求第N个斐波那契数的10007的余,1<N<1000000
我的第一次代码
程序代码:
#include<stdio.h>
#include <stdlib.h>
int main(){
    int i,n,F[1000001];//。。
    F[1]=1;
    F[2]=1;
    scanf("%d",&n);
    for(i=3;i<=n;++i)
        F[i]=(F[i-1]+F[i-2])%10007;
    printf("%d\n",F[n]);
    return 0;
}

运行是提示运行出错,
修改为一下:把1000001改为100001;运行出来了,猜测是内存不够?感觉不太可能、、
再改:把数组定义放在全局变量
程序代码:
#include<stdio.h>
#include <stdlib.h>
int F[1000001];//。。。。
int main(){
    int i,n;
    F[1]=1;
    F[2]=1;
    scanf("%d",&n);
    for(i=3;i<=n;++i)
        F[i]=(F[i-1]+F[i-2])%10007;
    printf("%d\n",F[n]);
    return 0;
}

运行成功。
想问下为什么?谢谢。
搜索更多相关主题的帖子: 全局变量 include int for 运行 
2018-03-21 23:53
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:20 
数组是连续的,可能太大块了,内存按块管理。
第一次是局部的,栈段有限。

[此贴子已经被作者于2018-3-22 05:00编辑过]

2018-03-22 04:46
快速回复:全局变量
数据加载中...
 
   



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

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