练习一:键盘输入两个整数,计算并显示前者占后者的百分比。
代码如下:
int a = 0;
int b = 0;
puts("输入两个整数(整数小于整数2)。");
printf("整数1:");
scanf("%d",&a);
printf("整数2:");
scanf("%d",&b);
printf("整数1占整数2的:%d%%\n",a*100/b);
//格式化字符串中的【%】有转换说明的意思,当我们只想单纯的输出一个%时,需要在字符串中输入【%%】
return 0;
运行结果:
值得注意的是:
在本例中,a/b得到的只是商的整数部分。如果先算54/84=0,然后0×100%=0。如果这么思考就会出现问题。
于是我们可以考虑先54*100,然后再放弃小数的部分。即可得出答案。
拓展:考虑小数点。
代码如下:
int a = 0;
int b = 0;
float quo = 0;
float per = 0;
puts("输入两个整数(整数小于整数2)。");
printf("整数1:");
scanf("%d", &a);
printf("整数2:");
scanf("%d", &b);
quo = (float)a / b;
per = quo * 100;
printf("整数1占整数2的百分比%f%%\n",per);
//return 0;
运算结果:
分析:
quo=a/b只能得到该结果的整数部分。
但是,quo=(float) a/b就可以得到浮点型的商了
使用printf时,格式化字符串中的类型应当改为【%f】。
思想:
如果:相除.>>>>放大>>>>得不到结果,那么:放大>>>>相除>>>>即为所求