#include <stdio.h>
int numero=6;
int numerodos=4;
int result=numero*numerodos;
main()
{
while (result<200) {
printf("The product of %d and %d is %d", numero, numerodos, result);
result=result+1
}
}
我知道算法很糟糕,我并不专注于此。但在第3行,我在Codeblocks中得到“初始化元素不是常数”错误。我想知道为什么会这样?我不处理大型对象,这就是其他stackflow所说的错误所涉及的内容。如果我在printf之后初始化main函数中的第3行;然而,它构建并运行良好,虽然可怕的代码。
答案 0 :(得分:0)
这是因为你初始化并给出main()
之外的另一个变量的值试试这个:
#include <stdio.h>
int numero=6;
int numerodos=4;
int result=0;
main()
{
result=numero*numerodos;
while (result<200) {
printf("The product of %d and %d is %d", numero, numerodos, result);
result=result+1; // BE CAREFUL, ADD THIS SEMICOLON
}
}
答案 1 :(得分:0)
根据C标准(6.7.9初始化)
4具有静态的对象的初始值设定项中的所有表达式 或线程存储持续时间应为常量表达式或字符串 文字。
和(6.6常量表达式)
2可以在翻译期间评估常量表达式 比运行时,因此可以在任何恒定的地方使用 可能是
考虑到没有必要将程序中的变量声明为全局变量。你可以写
#include <stdio.h>
int main( void )
{
int numero=6;
int numerodos=4;
int result=numero*numerodos;
while (result<200) {
printf("The product of %d and %d is %d", numero, numerodos, result);
result=result+1
}
}
答案 2 :(得分:0)
在这里,您试图动态初始化变量,但在C中是不可能的。 在C中,只能在初始化时为变量分配一个常量值(任何no,string)。 它可以用c ++或java完成。