如何使用C语言求百分比
在学习编程过程中,通过解决现实生活中的问题来应用所学的知识,可以提高学习兴趣并加深对程序的理解。对于刚接触C语言的朋友而言,数学运算是非常适合进行程序练习的内容之一。在本文中,将分享一个利用C语言求百分比的操作,希望对需要的朋友有所帮助。
准备工作
首先,打开DEV CPP(一个C语言开发环境),新建一个C语言工程,并根据个人喜好为工程命名。
代码实现
在工程的main.c文件中输入以下代码:
```c
include
include
double GetPercent(double num1, double maxNum) {
// 求解num1对maxNum的百分比
return ((num1 / maxNum) * 100);
}
int main(int argc, char *argv[]) {
double num 0.0; // 输入的数字
double maxNum 100; // 数字的最大值
printf("输入最大数据:");
scanf("%lf", maxNum);
printf("输入现有数据:");
scanf("%lf", num);
printf("现有数据:%.2lf占总数:%.2lf的百分比为:%.2lf
", num, maxNum, GetPercent(num, maxNum));
system("pause"); // 暂停
return 0;
}
```
编译运行
编写完成后,使用菜单栏的“Execute” -> “Compile Run”来编译并运行工程。
使用方法
工程运行后,按照提示先输入基数数值,比如200,然后输入占比数值,比如3。程序将计算出占比结果,例如3占200为1.5%。验证计算结果是否符合预期。
优化程序
然而,上述代码存在一个问题:当输入的基数为0时,不会进行报错提示,而是会计算出一个莫名其妙的结果。这是因为除法溢出导致的。为了解决这个问题,我们需要对程序进行优化。
最简单的办法是,在输入基数后进行判断,如果不合法则重新输入,直到输入合法的数据为止。我们可以使用do-while语句实现:
```c
do {
printf("输入最大数据:");
scanf("%lf", maxNum);
if (maxNum < 0) {
printf("输入的最大数据必须大于0!
");
}
} while (maxNum < 0);
```
增加基数合法性判断的代码后,当输入基数为0或负数时,程序会提示输入非法并要求重新输入,直到收到合法的基数才会继续执行下一步。
同时,我们也可以对求百分比的函数进行容错处理。例如,当接收到的占比小于0时,提示不能输入负数,并退出程序。当输入的基数为0时,同样进行提示,并退出程序以防止溢出导致崩溃。
```c
double GetPercent(double num1, double maxNum) {
if (num1 < 0) {
printf("现有数据不能为负数!
");
system("pause");
exit(0);
}
if (maxNum 0) {
printf("被除数不能为0!
");
system("pause");
exit(0);
}
return ((num1 / maxNum) * 100);
}
```
通过以上优化,我们保证了输入的数据合法性,避免了除法溢出和程序崩溃的风险。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。