经典100例 1-5

//
// Created by 86184 on 2024/7/16.
//



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

#include <stdio.h>

void sumNumbers();

void standardAnswer();


int main() {

//    sumNumbers();
    standardAnswer();
    return 0;
}

void sumNumbers() {
    int sum_numbers = 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 && i != k && k != j) {
                    printf("%d\n", i * 100 + j * 10 + k);
                    sum_numbers++;
                } else {
                    continue;
                }
            }
        }
    }
    printf("一共有:%d个无数重复数字的三位数。", sum_numbers);
}

void standardAnswer() {
    int i, j, k;
    int sum_numbers = 0;
    printf("\n");
    for (i = 1; i < 5; i++) { // 以下为三重循环
        for (j = 1; j < 5; j++) {
            for (k = 1; k < 5; k++) { // 确保i、j、k三位互不相同
                if (i != k && i != j && j != k) {
                    printf("%d,%d,%d\n", i, j, k);
                    sum_numbers++;
                }
            }
        }
    }
    printf("一共有:%d个无数重复数字的三位数。", sum_numbers);
}
//
// Created by 86184 on 2024/7/16.
//

//企业发放的奖金根据利润提成。
//
//利润(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,求应发放奖金总数?
#include <stdio.h>

void standardAnswer();

void profit1();

int main() {

//    standardAnswer();
    profit1();
    return 0;
}

void profit1() {

    printf("当月利润为:\n");
    //将缓冲区的内容写在屏幕上
    fflush(stdout);
    double month_profit = 0.0;
    scanf("%lf", &month_profit);
    printf("应发放奖金总数为:%4.2lf" , month_profit);
    if (month_profit <= 100000) {
        month_profit = month_profit * (1.0 + 0.1);
    } else if (month_profit < 100000 && month_profit <= 200000) {
        month_profit = 100000 * (1.0 + 0.1) + (month_profit - 100000) * (1.0 + 0.75);
    } else if (month_profit < 200000 && month_profit <= 400000) {
        month_profit = 200000 + (month_profit - 200000) * (1.0 + 0.05);
    } else if (month_profit < 400000 && month_profit <= 600000) {
        month_profit = 400000 + (month_profit - 400000) * (1.0 + 0.03);
    } else if (month_profit < 600000 && month_profit <= 1000000) {
        month_profit = 600000 + (month_profit - 600000) * (1.0 + 0.015);
    } else if (1000000 <= month_profit) {
        month_profit = 1000000 + (month_profit - 1000000) * (1.0 + 0.01);
    }
    printf("应发放奖金总数为:%4.2lf" , month_profit);
}

void standardAnswer() {
    double i;
    double bonus1, bonus2, bonus4, bonus6, bonus10, bonus;
    printf("你的净利润是:\n");
    scanf("%lf", &i);
    bonus1 = 100000 * 0.1;
    bonus2 = bonus1 + 100000 * 0.075;
    bonus4 = bonus2 + 200000 * 0.05;
    bonus6 = bonus4 + 200000 * 0.03;
    bonus10 = bonus6 + 400000 * 0.015;
    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 = bonus4 + (i - 400000) * 0.03;
    } else if (i <= 1000000) {
        bonus = bonus6 + (i - 600000) * 0.015;
    } else if (i > 1000000) {
        bonus = bonus10 + (i - 1000000) * 0.01;
    }
    printf("提成为:bonus=%lf", bonus);

    printf("\n");
}
//
// Created by 86184 on 2024/7/17.
//

//***************************Start

//一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
/*
 *  x + 100 = n^2
 *  x + 100 + 168 = m^2
 *
 *  (m - n )(m + n) = 168
 *     j    *  i    = 168
 *    要想是整数 (i + j) (j - i)必须都为 偶数
 *    i j 同奇偶
 *    m = (i + j) / 2
 *    n = (j - i) / 2
 *
 * */

#include <stdio.h>

int main() {

    int i, j, x, m, n;
    for (i = 1; i < 168 / 2 + 1; i++) {
        if (168 % i == 0) {
            j = 168 / i;
            if (i > j && (i + j) % 2 == 0 && (i - j) % 2 == 0) {
                m = (i + j) / 2;
                n = (j - i) / 2;
                x = n * n - 100;
                printf("%d + 100 = %d * %d\n", x, n, n);
                printf("%d + 268 = %d * %d\n", x, m, m);
            }
        }
    }

    return 0;
}
//
// Created by 86184 on 2024/7/17.
//

//输入某年某月某日,判断这一天是这一年的第几天?

#include <stdio.h>

int main() {
    int dataTime = 0;
    printf("请输入时间(格式为:20240717):");
    fflush(stdout);
    scanf("%d", &dataTime);

//      2024 07   17
//         2024
    int years = dataTime / 10000;

//                 2024 07       2024 00
    int month = dataTime / 100 - years * 100;
//         07

//                 2024 07 17   07 00  2024 00 00
    int days = dataTime - month * 100 - years * 10000;
    printf("%d年 ,%d月 ,%d日 ", years, month, days);

    int sum, leap;
    switch (month) {
        case 1:
            sum = 0;
            break;
        case 2:
            sum = 31;
            break;
        case 3:
            sum = 59;
            break;
        case 4:
            sum = 90;
            break;
        case 5:
            sum = 120;
            break;
        case 6:
            sum = 151;
            break;
        case 7:
            sum = 181;
            break;
        case 8:
            sum = 212;
            break;
        case 9:
            sum = 243;
            break;
        case 10:
            sum = 273;
            break;
        case 11:
            sum = 304;
            break;
        case 12:
            sum = 334;
            break;
        default:
            printf("data error");
            break;

    };

    sum = sum + days;
//    判断这一天是这一年的第几天
    //1.判断是否为闰年
    if (years % 400 == 0 || (years % 4 == 0 && years % 100 != 0)) {
        leap = 1;
    } else {
        leap = 0;
    }
    if (leap == 1 && month > 2) {
        sum++;
    }
    printf("这是这一年的第 %d 天。", sum);
    printf("\n");
    return 0;
}


//参考答案
void answer() {
    int day, month, year, sum, leap;
    printf("\n请输入年、月、日,格式为:年,月,日(2015,12,10)\n");
    scanf("%d,%d,%d", &year, &month, &day);  // 格式为:2015,12,10
    switch (month) // 先计算某月以前月份的总天数
    {
        case 1:
            sum = 0;
            break;
        case 2:
            sum = 31;
            break;
        case 3:
            sum = 59;
            break;
        case 4:
            sum = 90;
            break;
        case 5:
            sum = 120;
            break;
        case 6:
            sum = 151;
            break;
        case 7:
            sum = 181;
            break;
        case 8:
            sum = 212;
            break;
        case 9:
            sum = 243;
            break;
        case 10:
            sum = 273;
            break;
        case 11:
            sum = 304;
            break;
        case 12:
            sum = 334;
            break;
        default:
            printf("data error");
            break;
    }
    sum = sum + day; // 再加上某天的天数
    if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {// 判断是不是闰年
        leap = 1;
    } else {
        leap = 0;
    }
    if (leap == 1 && month > 2) { // *如果是闰年且月份大于2,总天数应该加一天
        sum++;
    }
    printf("这是这一年的第 %d 天。", sum);
    printf("\n");
}

//
// Created by 86184 on 2024/7/18.
//

//***
//输入三个整数x,y,z,请把这三个数由小到大输出。

#include <stdio.h>

int main() {
    int x, y, z, t;
    printf("\n请输入三个数字:\n");
    scanf("%d%d%d", &x, &y, &z);

    if (x > y) { /*交换x,y的值*/
        t = x;
        x = y;
        y = t;
    }
    if (x > z) { /*交换x,z的值*/
        t = z;
        z = x;
        x = t;
    }
    if (y > z) { /*交换z,y的值*/
        t = y;
        y = z;
        z = t;
    }

    printf("从小到大排序: %d %d %d\n", x, y, z);

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值