C语言实验二——基本结构程序设计

一、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;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值