首页 > 其他分享 >C语言实例2

C语言实例2

时间:2022-10-16 19:01:10浏览次数:60  
标签:提成 get int scanf C语言 bonus 实例 choose

  1. 题目:企业发放的奖金根据利润提成。

    利润(I)低于或等于10万元时,奖金可提10%;

    利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,提成7.5%;

    利润20万到40万之间时,高于20万元的部分,可提成5%;

    利润40万到60万之间时高于40万元的部分,可提成3%;

    利润60万到100万之间时,高于60万元的部分,可提成1.5%;

    利润高于100万元时,超过100万元的部分按1%提成,

    从键盘输入当月利润I,求应发放奖金总数?

  2. 程序分析:利用数轴来分界,定位。注意类型的定义。
  3. 程序源代码:
    #include <stdio.h>
    #include <stdlib.h>
    //获取利润 
    int get_i();
    //获取奖金
    int get_bonus(double i);
    //判断是否继续 
    int get_choose();
    //主函数 
    int main() {
    	get_i();
    	get_choose();
    	return 0;
    }
    
    int get_i(){
        ///定义为双精度浮点型
    	double i,bonus;
    	printf("请输入你的利润:(万)");
    	scanf("%lf",&i);
    ///scanf("%*[^\n]"); scanf("%*c");
    ///第一个 scanf() 将逐个读取缓冲区中\n之前的其它字符,% 后面的 * 表示将读取的这些字符丢弃,遇到
    ///\n字符时便停止读取。此时,缓冲区中尚有一个\n遗留,第二个 scanf() 再将这个\n读取并丢弃,这里的
    ///星号和第一个 scanf()的星号作用相同。由于所有从键盘的输入都是以回车结束的,而回车会产生一个\n
    ///字符,所以将\n连同它之前的字符全部读取并丢弃之后,也就相当于清除了输入缓冲区。
    	scanf("%*[^\n]");scanf("%*c");
    	i = i * 10000;
    	get_bonus(i);
    	return 0; 
    }
    
    int get_bonus(double i){
    	double bonus,bonus1,bonus2,bonus3,bonus4,bonus5;
    	bonus1 = 100000 * 0.1;
    	bonus2 = bonus1 + (100000 * 0.075);
    	bonus3 = bonus2 + (200000 * 0.05);
    	bonus4 = bonus3 + (200000 * 0.03); 
    	bonus5 = bonus4 + (400000 * 0.15);
    	if (i<=100000){
    		bonus = i * 0.1;
    	} else if (i <= 200000){
    		bonus = bonus1 + (i - 100000) * 0.075;
    	} else if (i <= 400000){
    		bonus = bonus2 + (i - 200000) * 0.05;
    	} else if (i <= 600000){
    		bonus = bonus3 + (i - 400000) * 0.03;
    	} else if (i <= 1000000){
    		bonus = bonus4 + (i - 600000) * 0.015;
    	}  else if (i>1000000){
    		bonus = bonus5 + (i - 1000000) * 0.01;
    	}
    	printf("奖金为:%g(元)\n",bonus);
    	return 0;
    }
    
    int get_choose(){
    	char choose;
    	printf("是否继续计算(y/n):");
    	scanf("%c",&choose);
    	scanf("%*[^\n]");scanf("%*c");
    	if (choose == 'y' || choose == 'Y'){
    		main();
    	}else{
    		printf("%c",choose);
    	}
    	return 0;
    }
  4.  运行结果:

标签:提成,get,int,scanf,C语言,bonus,实例,choose
From: https://www.cnblogs.com/grey-lion/p/16796792.html

相关文章

  • 【C语言有这个就够了】七.实用调试技巧
    (一)什么是BUG历史上第一个bug导致程序运行错误的对象(二)调试是什么调试就是破案的过程,因为有人写代码是这样的:1.调试又称除错,是发现和减少计算机程序或电子仪器设备中程序错误......
  • C语言循环
    #include<stdio.h>intmain(){int i=0;printf("去卖烤红薯\n");while(i<200){printf("卖出的烤红薯:%d\n",i);  i++;}if(i>=200)printf("成为千万富翁\n");  retu......
  • 用C语言实现两个值交换的四种方法
    一.题中已给两个值的数值二.随意输出两个整数(变量)的数值为避免麻烦,我在这里统一用变量(就是第二种)来敲一遍,希望可以给各位解决些麻烦,仅供参考,希望指正。另外,下面的代码我用了......
  • C语言的学习——零基础学习(1)
    C语言是一门计算机语言计算机语言指的是人与计算机交流的语言。学习C语言时,我所用的编程软件是微软的VisualStudio通过VS进行编写人生中的第一个程序,这个程序就是所有课本中......
  • C语言基础学习1
    //day1!!!!!#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>//意思是包含stdio.h里面的头文件包含输入输出里面的函数intmain(){printf("hellowwold.\n");//pri......
  • C语言笔记
    Part41.程序语言的功能是:数据表达与数据处理。     数据表达就是变量定义,对数据进行定义。例如:inta,就是对a这个变量进行整型的定义。     数据处理就......
  • 实验一 C语言开发环境使用和编程初体验
    //实验一#include<stdio.h>intmain(){printf("OO\n");printf("<H><H>\n");printf("IIII\n");return0;}//task1_1.c#include<......
  • 【leetcode_C语言_数组_day2】977.有序数组的平方&&209.长度最小的子数组&&59. 螺旋矩
    977.有序数组的平方1.题目给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例1:输入:nums=[-4,-1,0,3,10]......
  • C语言之字符串与字符数组的区别
     1.字符串的定义:(1)单个字符:charch='i';//单个字符的定义(2)一维字符串数组:chararr[]="love";(这种方法定义的一维字符串数组必须赋值)chararr[4];(想内存申请创建可以......
  • 实验1 C语言开发环境使用和编程初体验
    #include<stdio.h>intmain(){printf("OO\n");printf("<H><H>\n");printf("IIII\n");return0;}#include<stdio.h>#include<mat......