【问题标题】:Please tell me what's wrong with this code [closed]请告诉我这段代码有什么问题[关闭]
【发布时间】:2021-01-21 14:43:32
【问题描述】:
#include<stdio.h>
void main()
{
    int i=1,s=0;
    do{
        s+=i;
    }while(i<=10);
    printf("sum is %d",s);
}

这段代码没有给出任何输出,请告诉我出了什么问题。

【问题讨论】:

  • 这是一个无限循环,因为我从不改变
  • 你不要增加i
  • 谢谢,现在我知道我没有增加i的值
  • s+=i++ 应该会为您解决。
  • 改用for循环,语法自然而然。

标签: c loops infinite-loop do-while


【解决方案1】:

您有一个无限循环,因为在循环中未更改在 do-while 循环条件中使用的变量 i。它在初始化时保持等于 1。

do{
    s+=i;
}while(i<=10);

看来你的意思

do{
    s += i++;
} while( i <= 10 );

do{
    s += i;
} while( ++i <= 10 );

注意,根据C标准,没有参数的函数main应该声明为

int main( void )

还希望通过在输出流中包含换行符'\n' 来刷新输出缓冲区,例如

printf( "sum is %d\n", s );

【讨论】:

    【解决方案2】:

    你没有增加 i;

    do
    {
       s+=i;
       i++;
    }while(i<=10);
    

    【讨论】:

      猜你喜欢
      • 2022-06-10
      • 2013-05-10
      • 1970-01-01
      • 2020-02-21
      • 2020-10-30
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多