为什么会出现output limit exceeded?

img

img

#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
while(n!=1)
{
if(n%2!=0)
{
printf("%d3+1=%d\n",n,n3+1);
n=n*3+1;
}
if(n%2==0)
{
printf("%d/2=%d\n",n,n/2);
n=n/2;
}
}
printf("End");
return 0;
}

这样呢

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    while(n>1)
    {
        if(n%2==0)
        {
            printf("%d/2=",n);
            n/=2;
            printf("%d\n",n);
        }
        else
        {
            printf("%d*3+1=",n);
            n=n*3+1;
            printf("%d\n",n);
        }
    }
    printf("End");
    return 0;
}

本地测试一下,看看是不是死循环所以一直在输出

修改如下,供参考:

if (n % 2 != 0)
        {
            printf("%d*3+1=%d\n", n, n*3 + 1);
            n = n * 3 + 1;
        }
        else //if (n % 2 == 0)
        {
            printf("%d/2=%d\n", n, n / 2);
            n = n / 2;
        }