本小白落入死循环之中无法自拔

#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是多余的