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(); // 读取并丢弃换行符
}