请告诉我这段代码有什么问题

时间:2021-01-21 14:43:32

标签: c loops infinite-loop do-while

#include<stdio.h>
void main()
{
    int i=1,s=0;
    do{
        s+=i;
    }while(i<=10);
    printf("sum is %d",s);
}

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

2 个答案:

答案 0 :(得分:2)

您有一个无限循环,因为在 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 );

答案 1 :(得分:1)

你没有增加 i;

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