2024.7.15c基础

1.循环打印以下形状
******

 ******

  ******

    ******

     ******
2.打印100-1000以内的所有的水仙花数

3.企业发放的奖金根据利润提成:
利润低于或等于 10 万元时,奖金可提 10%;
利润高于 10 万元,低于 20 万元时,低于 10 万元的部分按 10% 提成,高于 10 万元的部分,可提成5%
20 万到40 万之间时,高于 20 万元的部分,可 提成 5%
40 万到 60 万之间时高于 40 万元的部分,可提成 3%
60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5%
高于 100 万元时,超过 100 万元的部分按1% 提成,从键盘输入当月利润 ,求应发放奖金总数
4.求1000以内所有的质数。质数:只能够1和它本身整除
5.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
6.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩
下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃
时,见只剩下一个桃子了。

7学生成绩管理:switch-case
从外部输入一个学习成绩,范围为0-100
成绩大于等于90分,则输出A,
成绩大于等于80,则输出B,
成绩大于等于60,则输出C
小于60,则输出D求第一天共摘了多少。结果:peach=1534

#include <stdio.h>
void bonus(); // 奖金计算功能
void monkey_eat_banana(); // 猴子吃香蕉
void is_water_num(); // 判断一个数是否为水仙花数
void is_prime(); // 判断一个数是否为质数
void different_three_num(); // 输入4个数,输出不同的3位数
void print_polygon();//打印4边形
void grade(); // 输入一个学生成绩,输出等级
int main(int argc, const char *argv[])
{
 bonus(); // 奖金计算功能
 monkey_eat_banana(); // 猴子吃香蕉
 is_water_num(); // 判断一个数是否为水仙花数
 is_prime(); // 判断一个数是否为质数
 different_three_num(); // 输入4个数,输出不同的3位数
 print_polygon();//打印4边形
 grade(); // 输入一个学生成绩,输出等级
}
//猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,
// 又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
// 以后每天早上都吃了前一天剩下的一半零一个。
// 到第n天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

void monkey_eat_banana() {
    printf("请输入天数:\n");
    int day;
    scanf("%d", &day);
    int banana = 1;
    for (int i = 1; i <= day; i++) {
        banana = (banana + 1) * 2;
    }
    printf("第一天共摘了%d个桃子\n", banana);
    getchar(); // 读取并丢弃换行符
}
//水仙花数:一个 3 位数,其各位数字的 3次幂之和等于它本身。
void is_water_num() {
    int num=100;
    printf("100-999内的水仙花数:\n");
    for(int i=num;i<1000;i++    )
    {
        int bit1=i/100;
        int bit2=(i%100)/10;
        int bit3=i%10;
        if(bit1*bit1*bit1+bit2*bit2*bit2+bit3*bit3*bit3==i)
        {
            printf("%d\n",i);
        }
    }
    getchar(); // 读取并丢弃换行符
}
 //1000以内的质数
//质数又称素数,指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
 void is_prime()
 {
    int num=2;
    printf("1-1000内的质数:\n");
    for (int i = num; i < 1000; i++)
    {
        int flag = 0;
        for (int j = 2; j < i; j++)
        {
            if (i % j == 0)
            {
                flag = 1;
                break;
            }
            if (flag == 0)
            {
                printf("%d\n", i);
            }
        }
    }
    getchar(); // 读取并丢弃换行符
}
   //输入四个数字能组成多少个不同的3位数?
 void different_three_num()
 {
     int num1, num2, num3, num4;
     int count = 0;

     printf("请输入四个数字:\n");
     scanf("%d%d%d%d", &num1, &num2, &num3, &num4);

     // 验证输入数字是否在0到9之间,这里简单处理
     if (num1 < 0 || num1 > 9 || num2 < 0 || num2 > 9 ||
         num3 < 0 || num3 > 9 || num4 < 0 || num4 > 9)
     {
         printf("输入数字不合法,请输入0到9之间的数字。\n");
         return;
     }
     else
     {
         for (int i = 100; i <= 999; i++)
         {
             int bit1 = i / 100;
             int bit2 = (i % 100) / 10;
             int bit3 = i % 10;

             if (bit1 == num1 || bit1 == num2 || bit1 == num3 || bit1 == num4 ||
                 bit2 == num1 || bit2 == num2 || bit2 == num3 || bit2 == num4 ||
                 bit3 == num1 || bit3 == num2 || bit3 == num3 || bit3 == num4)
             {
                 printf("%d\n", i); // 注意这里需要加分号
                 count++;
             }
         }
         printf("共有%d个不同的3位数。\n", count);
     }
     getchar(); // 读取并丢弃换行符
 }
 //四边形打印
 void print_polygon()
 {
     int n;
     printf("请输入四边形行数:\n");
     scanf("%d", &n);
     
     for (int i = 1; i <= n; i++)
     {
         for (int j = 1; j <= i; j++)
         {
             printf(" \n");
         }
         printf("*********\n");
     }
     getchar(); // 读取并丢弃换行符
 }
//.企业发放的奖金根据利润提成:
//利润低于或等于 10 万元时,奖金可提 10 %;
//利润高于 10 万元,低于 20 万元时,
// 低于 10 万元的部分按 10 % 提成,
// 高于 10 万元的部分,可提成5 %
//20 万到40 万之间时,高于 20 万元的部分,可 提成 5 %
//40 万到 60 万之间时高于 40 万元的部分,可提成 3 %
// 
//60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5 %
//高于 100 万元时,超过 100 万元的部分按1 % 提成,
//从键盘输入当月利润 ,求应发放奖金总数
void bonus() {
    double profit, bonus;
    printf("请输入当月利润:\n");
    scanf("%lf", &profit); // 使用 %lf 读取 double 类型

    if (profit <= 100000) {
        bonus = profit * 0.1;
    }
    else if (profit <= 200000) {
        bonus = 100000 * 0.1 + (profit - 100000) * 0.075;
    }
    else if (profit <= 400000) {
        bonus = 100000 * 0.1 + 100000 * 0.075 + (profit - 200000) * 0.05;
    }
    else if (profit <= 600000) {
        bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (profit - 400000) * 0.03;
    }
    else if (profit <= 1000000) {
        bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (profit - 600000) * 0.015;
    }
    else {
        bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (profit - 1000000) * 0.01;
    }

    printf("奖金为%.2f元\n", bonus);

    getchar(); // 读取并丢弃换行符
}

//输入一个学生成绩,输出等级
void grade() {
    int score;
    printf("请输入你的成绩:\n");
    scanf("%d", &score);
    score >= 90 ? printf("你的等级是A\n") :
        score >= 80 ? printf("你的等级是B\n") :
        score >= 70 ? printf("你的等级是C\n") :
        score >= 60 ? printf("你的等级是D\n") :
        printf("你的等级是E\n");
    getchar(); // 读取并丢弃换行符
}

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值