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;
}
换汤不换药,多动脑子少睡觉