day05C基础作业

1.学生成绩管理(switch-case):从外部输入一个学习成绩,范围为0-100,成绩大于等于90,输入A,成绩大于等于80,输入B,成绩大于等于60输入C,小于60,则输出D

2. 企业发放的奖金根据利润提成:
  1.利润低于或等于 10 万元时,奖金可提 10%;
  2.利润高于 10 万元,低于 20 万元时,低于 10 万元的部分按 10% 提成,高于 10 万元的部分,可提成 7.5% 
  3.20 万到40 万之间时,高于 20 万元的部分,可 提成 5% 
  4.40 万到 60 万之间时高于 40 万元的部分,可提成 3%
  5.60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5%,
  6.高于 100 万元时,超过 100 万元的部分按1% 提成,
  7.从键盘输入当月利润  ,求应发放奖金总数

3.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 结果:peach=1534

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

水仙花数:是指一个三位数的每一位的立方和还等于这个数,则这个数称之为水仙花数

num = 个位数的立方 + 十位数的立方 + 百位数的立方

if(153== 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3){153就是水仙花数}

5.求1000以内所有的质数。质数:只能够1和它本身整除

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

7.循环打印以下形状

******** 0个空格 8个*

 ******** 1个空格 8个*

  ******** 2

   ******** 3

    ******** 4

     ******** 5

1.

#include<stdio.h>
int main(){
	int s,score;
	printf("输入成绩:\n");
	scanf("%d",&s);
	if(s > 100 || s < 0){
		printf("输入成绩错误"); 
	}
	else{
		score = s/10;
		switch(score){
            case 10 :
				printf("A");
				break;
			case 9 :
				printf("A");
				break;
			case 8 :
				printf("B");
				break;
			case 7 :
				printf("C");
				break;
			case 6 :
				printf("C");
				break;
			case 5 :
				printf("D");
				break;
			case 4 :
				printf("D");
			case 3 :
				printf("D");
				break;
			case 2 :
				printf("D");
				break;
			case 1 :
				printf("D");
				break;
			case 0 :
				printf("D");
				break;
			default:
				printf("输入成绩错误"); 
		}
	}
	
	return 0;
}

2.

#include<stdio.h>
int main(){
	float s,money;
	printf("输入当月利润(万元):\n");
	scanf("%f",&s);
	if(s <= 10){
		money = s *0.1;
		printf("奖金为:%g\n",money); 
	}
	else if(s <= 20){
		money = (s - 10) * 0.075 + 10 * 0.1;
		printf("奖金为:%g万元\n",money); 
	}
	else if(s <= 40){
		money = (s - 20) * 0.05 +10 * 0.075 + 10 * 0.1;
		printf("奖金为:%g万元\n",money); 
	}
	else if(s <= 60){
		money = (s - 40) * 0.03 + 20 * 0.05 +10 * 0.075 + 10 * 0.1;
		printf("奖金为:%g万元\n",money); 
	}
	else if(s <= 100){
		money = (s - 60) * 0.015 + 20 * 0.03 + 20 * 0.05 +10 * 0.075 + 10 * 0.1;
		printf("奖金为:%g万元\n",money); 
	}
	else{
		money = (s - 100) * 0.01 + 40 * 0.015 + 20 * 0.03 + 20 * 0.05 +10 * 0.075 + 10 * 0.1;
		printf("奖金为:%g万元\n",money); 
	}
	return 0;
}

3.

#include<stdio.h>
int main(){
	int a = 1;//第十天还剩一个 
	int n = 9;//吃了九天 
	while(n--){
		a += 1;
		a *= 2; 
	} 
	printf("第一天摘了%d个桃子",a);
	return 0; 
}

4.

#include<stdio.h>
int main(){
	int n = 100;//从100开始 
	while(n < 1000){		
		int f = n / 100;//百位 
		int s = n / 10 % 10;//十位 
		int e = n % 100 % 10;  //个位 
		int sum = f * f * f + s * s * s + e * e * e;
		if(n == sum){
			printf("%d是水仙花数\n",n);
		}
		n += 1;
	} 
	return 0; 
}

5.

#include<stdio.h>
int main(){
	int sum = 0; 
	for(int i = 1000;i > 0 ;i --){	
		int con = 0; 	
		for(int j = 1; j < i; j ++)
			if(i % j == 0)
				con += 1;
		if(con == 1){
			printf("%d是质数\n",i);
			sum++;
		}
		
	}
	printf("一千以内一共有%d个质数",sum); //验证 
	return 0; 
}

6.

#include<stdio.h>
int main(){
	int con = 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 && j != k){
					con++;
					printf("%d\n",i*100 + j*10 + k);
				} 
	printf("有%d个互不相同的数",con);//总共有4*3*2=24个
	return 0; 
}

7.

这个题给我的第一感觉就是简单,但是没想到困扰了我二十多分钟,结果最后发现是行和列搞反了,类似的题思路应该都一样,比如九九乘法表,三角形,等腰梯形的打印,根据图形边缘找出临界点i和j的关系,不难发现这个题的两边是临界点,左边临界点是i==j,我们要取右边的值,自然就是j>=i;右边临界点是(0,7),(1,8)······等,同样也很容易看出j-i==7,取左边的值,自然就是j-i <= 7;还是太久没接触C了,双重循环的行列都能弄反,菜,就得多练

#include<stdio.h>
int main(){
	for(int i = 0;i <=5;i++ ){
		for(int j = 0;j <= 12;j++){
			if(j >= i && j-i <= 7  )
				printf(" * ");
			else 
				printf("   ");
		}
		printf("\n");
	}
				
	return 0;
} 

三角形

#include<stdio.h>
int main(){
	for(int i = 0;i <=3;i++ ){
		for(int j = 0;j <= 6;j++){
			if(j + i >= 3 && j-i <= 3  )
				printf(" * ");
			else 
				printf("   ");
		}
		printf("\n");
	}
				
	return 0;
} 

九九乘法表

#include<stdio.h>
int main(){
	for(int i = 1;i <=9;i++ ){
		for(int j = 1;j <= 9;j++){
			if(i >= j )
				printf("%d * %d =%-3d ",j,i,i*j);
			else 
				printf("   ");
		}
		printf("\n");
	}
				
	return 0;
} 

换汤不换药,多动脑子少睡觉

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值