c语言,空瓶换汽水可乐

#include
#include

int main()
{
int n,x,i=1,s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(n/3>0)
{
x=n/3;
s=s+x;
n=x+n%3;
}else{
if(n==2)
printf("%d",s);
else
printf("%d",s+1);
}
}

return 0;

}

img


帮忙看一下有啥问题,最后输出不出结果

int main()
{
    int n,x,i=1,s=0;
    scanf("%d",&n);
    while(n/3>0)
    {
        x=n/3;
        s=s+x;
        n=x+n%3;
        if(n==2)
            n=3;
    }
    printf("%d\n",s);
    return 0;
}

其实这个使用while循环比较好一些,代码参考如下:

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