| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 492 人关注过本帖
标题:全局变量输入数值后,变量怎么还会自己改变?
只看楼主 加入收藏
troyzyc
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2016-7-4
结帖率:56.6%
  已结贴   问题点数:5  回复次数:1   
全局变量输入数值后,变量怎么还会自己改变?
#include<stdio.h>
#define N 1000001

int m,n;         //问题:这里我设置了m、n为全局变量,在主函数中输入m=1,n=20后,在运行到最后 if(a[i]>m && a[i]<n)    这句时,我发现m=200001,n=20,这样就没有count的正确答案了。请问哪位大神知道全局变量还能自己改变?
int a[N];
void dfs(int s)   
{
    int i;
    int cnt=s;
   
    if(a[s]>n) return ;
   
    for(i=s;i<=n;i++)
    {
        if(i%a[s]!=0)  //有余数
        {
            a[cnt++]=a[i];
        }
    }
    dfs(s+1);  //找下一个幸运数字序号
    return ;
}


int main()
{
    int count=0;
    scanf("%d %d",&m,&n);
    int i,j;
   
    for(i=1;i<=N;i++)  //删掉能被2整除的序号的项 ,并重新记序
    {
        a[i]=2*i-1;
    }
    dfs(1);  //1是重排序后幸运数字的序号,或者是第二步
   
    for(i=1;i<n;i++)
    {
        if(a[i]>m && a[i]<n)   
            count++;
    }
    printf("%d\n",count);
    return 0;
}
2018-03-09 10:10
星珩
Rank: 1
等 级:新手上路
帖 子:1
专家分:4
注 册:2018-2-27
  得分:4 
2018-03-11 16:52







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

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