为了账号安全,请及时绑定邮箱和手机立即绑定

请问有什么错误,为什么是无限循环

#include <stdio.h>
int main()
{
    int i, j, k;
    for(i=1; i<5; i++)
    {
        /* 观察每行的空格数量,补全循环条件 */
        for(   j=5  ; j>i   ;j--    ) 
        {
            printf(" ");    //输出空格
        }
        /* 观察每行*号的数量,补全循环条件 */
        for( k=0.5  ; k<i   ;k+=0.5     )
        {
            printf("*");   //每行输出的*号
        }
        printf("\n");     //每次循环换行
    }
    return 0;
}

正在回答

1 回答

因为一开始申明k是int,所以在for(k=0.5;k<1;k+=0.5)时,开始k被赋的值不是0.5,而是0,你可以在循环中加一个printf("%f",k);来观察k值的变化,你这时就会发现在你这个语句里k一直等于0,所以k<i恒成立,也就成了死循环,

你可以把k变成浮点数再运行这个程序,这时应该就是对的

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问有什么错误,为什么是无限循环

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信