#include
int main()
{
printf("Input n:\n");
int n,i,m;
scanf("%d",&n);
for(m=1;m<=n;m=m+1)
{
for(i=1;i<2*m;i++)
{
printf("*");
m=m+1;
}
printf("\n");
}
return 0;
}
为什么会落入死循环之中无法自拔
不是很明白为什么要在第二个for循环中写m=m+1;这条语句
你在第二个for里面执行m = m + 1的操作,然后又是i < 2*m 而且 i只是i++,肯定是无法跳出循环的
for(m=1;m<=n;m=m+1)
{
for(i=1;i<2*m;i++)
{
printf("*");
}
printf("\n");
}
for(m=1;m<=n;m++){
for(i=1;i<2*m;i++){
printf("*");
}
printf("\n");
}
按照你的来的的话等于i每循环一次m+1,那i<2*m就一直是true了
for(i=1;i<2*m;i++)
{
printf("*");
m=m+1;
}
m始终增大, 使得i<2*m这个条件始终成立导致这个循环一直执行下去 =》死循环
第二个m=m+1是多余的