
我用VC++6.0编程,写好的程序为什么一运行就变成了这样
//文件名:第五章第3题.cpp//埃拉托色尼筛选法(2~1000)#include<iostream>usingnamespacestd;intmain(){inta[...
//文件名:第五章第3题.cpp//埃拉托色尼筛选法(2~1000)#include<iostream>using namespace std;int main(){ int a[999], b[999], i, k, j = 0, n,tmp; for (n = 2, i = 0; i < 999; ++n, ++i ) a[i] = n; for (i = 0; i < 999; ++i) { if (a[i] == 0) continue; else tmp = a[i]; for (k = i + 1; k < 999; ++k) { if (a[k] % tmp == 0) { b[j] = a[k]; ++j; a[k] = 0;} } } cout << "2~1000范围内,素数有:\n" ; for (i = 0; i < 999; ++i) if (a[i] != 0) cout<<a[i]<<'\t'; cout << endl; cout << "2~1000范围内,合数有:\n"; for (i = 0; i < j; ++i) cout << b[i] <<'\t'; cout << endl; return 0; }
展开
2个回答
展开全部
首先你需要把文件名第五章第三题改为英文,例如;ex5_3.cpp
追问
之前我用中文名做文件名没问题啊
追答
把 if (a[k] % tmp == 0),改为if (a[k] % tmp == 0 && a[k]!=0)。因为除了分母不能为零,还需要分子不为零,要不重复了,例如0%1=0。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询