多语言展示
当前在线:1118今日阅读:26今日分享:39

c 如何求百分比

使用程序对现实生活中的问题进行求解可以提现程序学习的实用性,提高学习兴趣。对于刚接触C语言的朋友,没有什么比数学运算更适合进行程序练习的了。这里分享一个利用C语言球百分比的操作,希望对需要的朋友有帮助。
工具/原料

DEV CPP

方法/步骤
1

打开DEV CPP,新建一个C语言工程,工程名根据个人喜好取符合规则的名字即可。

2

在工程的main.c中输入下面的代码: #include  #include /* run this program using the console pauser or add your own getch, system('pause') or input loop */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\r\n', num, maxNum, GetPercent(num, maxNum));    system('pause'); //暂停     return 0; }

3

程序编写完成,使用菜单栏的“Execute”->“Compile&Run”编译并运行工程。

4

工程运行后,按提示先输入基数数值,比如200,然后输入占比数值,比如3,那么3占200为1.5%,计算结果相符。

5

不过这个代码存在一个毛病就是:当输入的基数为0时不会进行报错提示,会计算出一个莫名其妙的符号出来,这个就是除法溢出的结果,我们需要对程序进行优化。

6

最简单的办法是,输入一个数后进行判断,如果合法则继续下一步,否则重新,录入知道输入合法的数据为止,可以使用do-while语句。 do{   printf('输入最大数据:');   scanf('%lf', &maxNum);      if(maxNum <= 0)   {    printf('输入的最大数据必须大于0!\r\n');   }  }while(maxNum <= 0); //当输入的maxNum不大于0时则表示输入错误

7

增加基数合法性判断的代码运行后,当输入基数为0时会提示输入非法,并要求再次输入,当接收到合法的基数后才会转下一步。。

8

与此同时,我们也可以为计算百分比的函数进行容错处理,比如当接收到的占比小于0时,提示不能输入负数,然后退出程序。当输入的基数为0时也进行提示,然后退出程序,放置溢出造成崩溃。double GetPercent(double num1, double maxNum) {  if(num1 < 0)  {   printf('现有数据不能为负数!\r\n');      system('pause');   exit(0);  }    if(maxNum == 0)  {   printf('被除数不能为0');      system('pause');   exit(0);  }    return ((num1 / maxNum) * 100); }

注意事项

除法溢出是程序设计最忌讳同时也是很容易犯的错误之一。

推荐信息