C语言经典100例【1、2】

【1】三位数字重组问题

题目:有 1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

分析:分别把1,2,3,4放在个位、十位和百位,用嵌套循环即可解决。注意要求无重复数字,所以还要进行if条件判断,算有几个需要用一个计数器。

#include <stdio.h>

int main()
{
    int a = 0; //计数器,用来算有几个
    //百位
    for (int i = 1; i <= 4; i++)
    {
        //十位
        for (int j = 1; j <= 4; j++)
        {
            //个位
            for (int k = 1; k <= 4; k++)
            {    
                //无重复数字
                if (i != j && j != k && i!=k)
                {
                    a++;
                    printf("%d%d%d\t", i, j, k);
                }
            }
        }
    }
    printf("\n一共能组成%d个三位数", a);

    return 0;
}


【2】奖金利润问题

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

  • 利润(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,求应发放奖金总数?

分析:需要设置10万,20万,40万,60万和100万这几个分界点,再通过if可以方便计算。

奖金:bonus

#include <iostream>
using namespace std;

int main()
{
    double l;
    double bonus1, bonus2, bonus4, bonus6, bonus10, bonus;
    cout << "当月利润:" << endl;
    cin >> l;
    bonus1 = 100000 * 0.1;
    bonus2 = bonus1 + 100000 * 0.75;
    bonus4 = bonus2 + 200000 * 0.05;
    bonus6 = bonus4 + 200000 * 0.03;
    bonus10 = bonus6 + 400000 * 0.015;
    if (l <= 100000) {
        bonus = l * 0.1;
    }
    else if (l <= 200000) {
        bonus = bonus1 + (l - 100000) * 0.075;
    }
    else if (l <= 400000) {
        bonus = bonus2 + (l - 200000) * 0.05;
    }
    else if (l <= 600000) {
        bonus = bonus4 + (l - 400000) * 0.03;
    }
    else if (l <= 1000000) {
        bonus = bonus6 + (l - 600000) * 0.015;
    }
    else if (l > 1000000) {
        bonus = bonus10 + (l - 1000000) * 0.01;
    }
    cout << "应发放奖金:" << bonus << endl;

    system("pause");
    return 0;
}


 
posted @ 2023-01-26 17:26  永生辉皇  阅读(216)  评论(0)    收藏  举报