我一直在主题中得到错误,下面是代码。特别是在常数N的类型中;我想数10 100和100到无限。
有什么问题以及如何最好地解决它?
#include <iostream>
#include <stdio.h>
#define N 100
#define start 1
int main()
{
system("cls");
long int a1,a2;
long int res1,res2;
long int c1,c2;
a1=start;
a2=a1+N;
res1=(a2+2)/5;
res2=(a2+4)/6;
long int i,q,z,g;
int nums[N];
for (i=start; i<(start + N); i++) {
nums["i<start"+1]=10*i+8;
}
for (i=1; i<N; i++) {
for (q=1;q<=res1;q++) {
c2=(a2+q+2)/(10*q-8);
c1=(a1+q+2)/(10*q-8)+1;
for (g=c1;g<c2;g++) {
z=(10*q+8)*g-(q-2);
if ((z-start+1)<N)
nums[z-start+1]=0;
else
break;
}
}
for (q=1;q<=res2;q++) {
c2=(a2+q)/(10*q-6);
c1=(a1+q)/(10*q-6)+1;
for (g=c1;g<=c2;g++) {
z=(10*q-6)*g+q;
if ((z-start+1)<N)
nums["z-start"+1]=0;
else
break;
}
}
}
for (i=1;i<N;i++)
return 0;
}
答案 0 :(得分:2)
好吧,编译器已经说出了什么问题。
nums["i<start"+1]
和nums["z-start"+1]
导致该错误。您无法通过string
(也称为const char*
)索引元素。只需将其替换为nums[i-start+1]
(或您对<
)和nums[z-start+1]
的意思。
此外,您的代码写得不是很好。不要使用N
或g
或c2
之类的短变量名称,这只会令人困惑(更喜欢长/逻辑的)。评论您的项目并了解编译器错误也永远不会伤害。