一、else-if语句的使用
程序功能:输入工资x的值,按公式分段计算所得税y并输出结果(保留2 位小数)。所得税计算规则如下。要求使用else-if语句。
#include<stdio.h>
int main()
{
int x;
float y=0;
scanf("%d",&x);
if(x<=30000)
y=0;
else if(x>30000&&x<=50000)
y=(x-30000)*0.03;
else if(x>50000&&x<=100000)
y=20000*0.03+(x-50000)*0.06;
else
y=20000*0.03+50000*0.06+(x-100000)*0.10;
printf("%.2f\n",y);
return 0;
}
二、switch语句的使用
程序功能:输入百分制成绩(0-100间整数),输出相应的五级制成绩(A-E)。五级制与百分制的对应关系为:A-[90,100]、B-[80,89]、C-[70,79]、D-[60,69]、E-[0,59]。要求使用switch语句实现多分支结构。
#include<stdio.h>
int main()
{
int x;
printf("请输入您的成绩:");
scanf("%d",&x);
x=x/10;
switch(x)
{
case 1:case 2:case 3:case 4:case 5:printf("您的成绩等级是:E\n");break;
case 6:printf("您的成绩等级是:D\n");break;
case 7:printf("您的成绩等级是:C\n");break;
case 8:printf("您的成绩等级是:B\n");break;
case 9:case 10:printf("您的成绩等级是:A\n");break;
default:printf("请输入有效的成绩(0~100):\n");break;
}
return 0;
}
三、for循环语句的使用
程序功能:输入正整数n和n个学生的成绩,计算平均分,并统计各等级成绩的人数。等级成绩分为A(90-100)、B(80-89)、C(70-79)、D(60-69)、E(0-59)五个等级。运行结果如下图。要求使用嵌套if语句实现多分支结构,使用for语句实现循环结构。
示例:
请输入学生总数:10
请输入10位学生的成绩:90 100 56 68 79 85 95 35 65 0
平均分:67.3
A级人数=3,B级人数=1,C级人数=1,D级人数=2,E级人数=3
#include<stdio.h>
int main()
{
int n,x,i,a,b,c,d,e,t=0,sum=0;
float average=0;
a=b=c=d=e=0;
printf("请输入学生人数总数:");
scanf("%d",&n);
printf("请输入%d个学生的成绩:",n);
for(i=1;i<=n;i++)
{
loop:scanf("%d",&x);
if(x>=0&&x<60){
e++;t++;
}
else if(x>=60&&x<70){
d++;t++;
}
else if(x>=70&&x<80){
c++;t++;
}
else if(x>=80&&x<90){
b++;t++;
}
else if(x>=90&&x<=100){
a++;t++;
}
else {
t++;
printf("请输入第%d位同学的有效成绩:",t);
goto loop;
}
sum+=x;
}
average=1.0*sum/n;
printf("平均分=%.2f\nA级人数=%d,B级人数=%d,C级人数=%d,D级人数=%d,E级人数=%d\n",average,a,b,c,d,e);
return 0;
}
四、whiledo-while语句的使用
程序功能:输入一个长整数n,从高位开始逐位分离并输出。例如输入123456,程序运行结果如下图。要求使用while或do-while语句实现循环结构。
**运行示例:**
请输入一个长整数:123456
123456从高位逐位分离并输出的结果是:1,2,3,4,5,6
#include<stdio.h>
int main(){
_int64 n,t,mask=1;
printf("请输入一个长整数:");
scanf("%I64d",&n);
t=n;
while(t/10!=0){
t=t/10;
mask=mask*10;
}
printf("%d从高位逐位分离并输出的结果是",n);
while(mask!=0){
printf("%d,",n/mask);
n=n%mask;
mask=mask/10;
}
printf("\n");
return 0;
}
五、for循环语句的使用
猴子吃桃问题:猴子第一天摘下若干桃子,当即吃了一半多一个,第二天将剩下的桃子吃掉一半多一个,以后每天都吃掉前一天剩下桃子的一半多一个。到第10天想再吃时,只剩下一个桃子。求第一天猴子共摘了多少桃子?程序运行结果如下图。要求使用for语句。
#include<stdio.h>
int main()
{
int n=1,i;
for(i=10;i>1;i--){
n=(n+1)*2;
}
printf("%d\n",n);
return 0;
}
六、水仙花问题
水仙花数问题:求1-10000之间所有水仙花数。水仙花数就是满足各位数字的立方和等于它本身的数。程序运行结果如下图。使用二重循环编写程序。
#include<stdio.h>
#include<math.h>
int main(){
int sum=0,i,j=0,a=0,count=0;
printf("1-10000间所有水仙花数:\n");
for(i=1;i<=10000;i++){
j=i;
for(;j!=0;){
a=j%10;
j=j/10;
sum+=pow(a,3);
}
if(i==sum){
printf("%d\n",i);
count++;
}
sum=0;//重置sum的值
}
printf("一共有%d个\n",count);
return 0;
}