#include
using namespace std;
int a[10000];
int main()
{
int j = 2;
int a, b;
cin >> a >> b;
for (int i = 0; i < 10000; i++)
{
while (1)
{
int cnt = 0;
for (int k = 2; k < j; k++)
{
if (j%k == 0)
{
cnt++;
break;
}
}
if (cnt == 0)
{
a[i] = j;
}
j++;
if (cnt == 0)
{
break;
}
}
}
int cnt1 = 0;
for (int i = a - 1; i <= b - 1; i++)
{
if (cnt1 == b - a)
{
cout << a[i] << endl;
}
else
{
if (cnt1 % 10 == 9)
{
cout << a[i] << endl;
cnt1++;
}
else
{
cout << a[i] << " ";
cnt1++;
}
}
}
system("pause");
return 0;
}
为什么代码中我设的变量i都报错了,平时我这样写对的啊。
数组和变量名字重合---a
你定义了两个不同类型的变量a,一个是int a[10000];
,另一个是int a,b;
。
然后你再看下你的变量作用域就会发现在你那个使用a[i]
的地方,a是被当做int
类型来处理的~
#include <iostream>
using namespace std;
int a[10000];
int main()
{
int j = 2;
int a1, b;
cin >> a1 >> b;
for (int i = 0; i < 10000; i++)
{
while (1)
{
int cnt = 0;
for (int k = 2; k < j; k++)
{
if (j%k == 0)
{
cnt++;
break;
}
}
if (cnt == 0)
{
a[i] = j;
}
j++;
if (cnt == 0)
{
break;
}
}
}
int cnt1 = 0;
for (int i = a1 - 1; i <= b - 1; i++)
{
if (cnt1 == b - a1)
{
cout << a[i] << endl;
}
else
{
if (cnt1 % 10 == 9)
{
cout << a[i] << endl;
cnt1++;
}
else
{
cout << a[i] << " ";
cnt1++;
}
}
}
system("pause");
return 0;
}