请你写一段程序,统计各类数字的占比。
提示:输出%时需要用%%才能输出。
输入格式:
只有一行,为用空格分隔的若干整数,最后一个整数为0。测试用例保证输入中只包含这一个0。
输出格式:
共三行,依次分别输出3、5、7的倍数的占比(如果某个数同时为多个数的倍数,如15,70等,则不参与统计,但要计到总数中)。占比采用百分数形式,且保留2位小数。这里的占比指的是这类数字的数量跟所有数字的总数(不包括最后的0)比。测试用例保证所有整数可以用int存储。
输入样例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 0
输出样例:
25.00%
15.00%
10.00%
#include<stdio.h>
int main(void)
{
int num3=0,num5=0,num7=0,ch=1;
float f=-1;//这里f=-1是因为题目中最后是一个0
//用float是为了作除法的时候方便计算
while(ch!=0)
{
scanf("%d",&ch);//通过循环对数字进行读取
f++;//每次循环给f+1,为了统计循环次数,从而计算数字的总数
if (ch%3==0&&ch%5>0&&ch%7>0)
num3++;
else if (ch%3>0&&ch%5==0&&ch%7>0)
num5++;
else if (ch%3>0&&ch%5>0&&ch%7==0)
num7++;
}
printf("%.2f%%\n%.2f%%\n%.2f%%\n",100*num3/f,100*num5/f,100*num7/f);
return 0;
}