一行数据检索,储存,算出所占百分比(枯了)

输入格式:
只有一行,为用空格分隔的若干整数,最后一个整数为0。测试用例保证输入中只包含这一个0。
输出格式:
共三行,依次分别输出3、5、7的倍数的占比(如果某个数同时为多个数的倍数,如15,70等,则不参与统计,但要计到总数中)。占比采用百分数形式,且保留2位小数。这里的占比指的是这类数字的数量跟所有数字的总数(不包括最后的0)比。测试用例保证所有整数可以用int存储。

#include <stdio.h>
int main()
{
      int n;
      int n0=0,n3=0,n5=0,n7=0;
      scanf("%d",&n);
      while(n!=0)
      {
          n0++;
          if(n%3==0 && n%5!=0 && n%7!=0)
              n3++;
          else if(n%5==0 && n%3!=0 && n%7!=0)
              n5++;
          else if(n%7==0 && n%3!=0 && n%5!=0)
              n7++;
          scanf("%d",&n);
      }
      printf("%.2f\n",n3*1.0/n0*100);
      printf("%.2f\n",n5*1.0/n0*100);
      printf("%.2f\n",n7*1.0/n0*100);
      return 0;
}

#include <stdio.h>
int main()
{
    int n;
    int all = 0,three = 0,five = 0,seven = 0;
    while(1)
    {
        scanf("%d",&n);
        if(n == 0) 
            break;
        else
        {
            all++;
            if (n%15 ==0 || n%21==0 || n%35==0)
                continue;
            else if(n%3==0)
                three++;
            else if(n%5==0)
                five++;
            else if(n%7==0)
                seven++;
        }
    }
    printf("%.2f%%",100.0*three/all);
    printf("%.2f%%",100.0*five/all);
    printf("%.2f%%",100.0*seven/all);
    return 0;
}