如何在输入0的条件下不输出任何数?

做oj平台时总会出现这种问题,当输入0时一般编译器也会输出0,怎么能解决这样的问题?每次都会在这里出错

img

修改如下:

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

你这个是输入0结束
看代码

int n;
while(scanf("%d", &n) && n != 0)
{
// 做点操作
n = n * 2 + 1;
printf("%d\n", n);
}

那就当值为0的时候进行return。或者是不进行输出就可以了

#include <stdio.h>

int main()
{
    int n;
    while (scanf("%d", &n) == 1) {
        if (n == 0)
            break;
        // write your code here...
    }
    return 0;
}

# include <stdio.h>
int main()
{
    int a[100], i = 0, flag = 1;;
    while (scanf_s("%d", &a[i]) != EOF)
    {
        if (a[i] == 0)
            flag = 0;
        i++;
    }
    if (flag == 0)
        return 0;
    else
    {
        for (int j = 0; j < i; j++)
            printf("%d\n", a[j]);
    }
    return 0;
}