我的第一个Hello World程序没有运行

时间:2020-04-25 14:18:00

标签: c

#include <stdio.h>

int a;
a = 1;

int main()

{

    while ( a = 1 );
    {
        printf("10");
    }
}

我认为我所做的一切都正确。请纠正我的错误。 :)

5 个答案:

答案 0 :(得分:2)

while语句后删除分号。那会阻止您的代码在那里执行。

while ( a = 1 )
{
    printf("10");
}

此外,while语句的参数可能不是您想要执行的操作。 while(a=1)表示a始终等于1,而while语句将永远继续。相反,您可能想要的是while(a==1),意思是“而a等于1”。

答案 1 :(得分:2)

您的while语句的意图不正确:

while ( a = 1 );
  1. 您在条件的正文之后使用分号;。尽管这样做在语法上是正确的,但这会导致不同的结果-> while循环的主体将被视为一个单独的块,而您的while仅会不断证明这种情况。

  2. 您还使用错误的运算符=而非==进行检查,因为在条件测试中需要使用==进行比较,而不是0 。否则,实际上会将1分配给a,条件将始终评估为true

正确的版本是:

while ( a == 1 )
{
   ....
}

您还可以将对a的分配及其定义结合起来:

int a = 10;

更正的程序是:

#include <stdio.h>

int a = 1;

int main(void)
{
    while ( a == 1 )
    {
        printf("10");
    }
}

请注意,该程序将永不终止并停止打印10,因为a从未更改。很有可能会导致运行时错误。


旁注:

这不是“ Hello World”程序。这是一个“ Hello World”程序:

#include <stdio.h>

int main(void)
{
    printf("Hello World!");

    return 0;
}

答案 2 :(得分:-1)

while循环语句后还有一个多余的分号。您可以删除它。您使用a = 1进行的分配应为a == 1,这将完成分配而不是分配。不过,我很想知道您的状况。您要打印“ 10”次?

答案 3 :(得分:-1)

删除多余的内容;在while循环之后,您还使用赋值运算符代替比较运算符

while(a==1)
{
  printf ("10");
}

答案 4 :(得分:-2)

使用'a == 1'来比较变量'=='的值,因此循环看起来像这样。 并确保在最后一个括号之前添加“ return 0”。 同时在while循环圆括号之后删除分号。

int a=1;

int main()
{
    while(a==1) {
     printf("10");
}
return 0;
}

您可以使用“ void main()”代替“ int main()”来避免返回值。 要使用“ void main()”,请将其替换为“ int main()”,然后删除“ return 0”