VC++6.0编程问题

本人vc++6.0初学者,今天用VC++6.0写代码的时候,遇到这样一个问题,n赋值为5的,但是运行后结果显示为1,代码后来用c-free来运行,结果n为5,按道理n为5... 本人vc++6.0初学者,今天用VC++6.0写代码的时候,遇到这样一个问题,n赋值为5的,但是运行后结果显示为1,代码后来用c-free来运行,结果n为5,按道理n为5才对,找不出是哪里出错了,在此请教下大家
#include <stdio.h>
#include <string.h>
int main()
{
long i,j,m1,m2;
int n=5, m[100000];
memset(m,0,100000);
for (i=2;i<100000;i++)
{
if (m[i]==0)
{for(j=2;i*j<=100000;j++)
m[i*j]=1;
}
}
printf("%d\n",n);
for (i=2;n<=15;i++)
{if (m[i]==0&&m[i+2]==0)
{printf("%d %d\n",i,i+2);
i+=2;n++;}
}
getchar();
}
展开
 我来答
空雪梦见
2014-03-08 · TA获得超过5598个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1202万
展开全部
i的取值不能到100000。定义int num[100000]的时候下标最多只能取到99999
你对num的操作溢出了,把n所在的内存覆盖掉了。
追问
嗯,这个的确是溢出了,不过即使用<100000,printf输出的n还是为1
追答
i*j那边还有一个<=10000
漫璇珠jp
2014-03-07 · TA获得超过422个赞
知道小有建树答主
回答量:1207
采纳率:0%
帮助的人:757万
追问
这个应该不与编译环境有关吧,n明明赋予5,可是输出却为1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-08
展开全部
CFREE的编译器基于gcc的 跟微软的不同 因此2个的结果不具有很大的可比性
麻烦把代码也贴上来 截图的话 我还要一个个的敲
更多追问追答
追问
  • 代码已经放上来了,麻烦你们了

追答

vs2008的c++ 与CFREE都是5啊

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式