2021-3-19C语言基础(2)if、else的使用, switch的嵌套用法, 给字符数字等计数, getchar的使用,利用取整取余取出数字的某一位

本次的内容包括
if、else的使用,
switch的嵌套用法,
给字符数字等计数,
getchar的使用,
利用取整取余取出数字的某一位。

出于时间限制,只能粗略的讲解。(真的真的没有时间)
注意格式!! !!! !!! !
1:利用if,else if,else做一个简单的缴税计算、

//计算你的税收//
#include<stdio.h>
void main()
{
	float x,y;
printf("你现在的收入为:");

scanf("%f",&x);
if (x<10000)
y=0;

else if(x<20000)
y=(x-10000)*(5/100);

else
y=x*(7/100);
printf("你需要交的税为%f",y);
}

if后加上括号,里面是判断的内容
从上述代码,我们可以看到
if 的括号内写的是x<10000
而在else if 的括号内没有写x>10000
因为在if的语法规则里本身就存在这样一种逻辑,自动添加上这一部分的内容
当我们再给else if中添加x>10000时则会报错

2:switch 方法计算你的学分

#include<stdio.h>
void main()
{
	int x,y,z,t;
	printf("请输入你得到的分数");
	scanf("%d",&x);
	switch((int)(x/10))
	{case 10:
	y=5;
	printf("你得的学分为%d\n",y);
	break;
	case 9:
	y=5;
	printf("你得的学分为%d\n",y);
	break;
	case 8:
	y=3;
	printf("你得到的学分%d\n",y);
	break;
	case 7:
	y=2;
	printf("你得的学分为%d\n",y);
	break;
	case 6:
	y=1;
	printf("你得的学分为%d\n",y);
	break;
	default:
		printf("你得的学分为0\n");
	}
}

首先使用switch下需要一对{},来表示switch的内容,switch就是用于多项选择一种方法
内部有case和default
case表示等于(注意格式,需要空格和冒号)
default表示其他的部分,类似于else(也要加冒号)
在switch中,每一个case后都要加上一个break
因为一旦有一个case成立后面的case指令都会执行,没有什么原因,就是这样的
break表示中断,也是在直接打断那个{}内的运行,直接跳出了所在的{}

3:利用switch的嵌套计算购物时可以优惠的百分比

#include<stdio.h>
void main()
{
	//假如在0-3000折扣为3%3000-500010%5000-1000020%,大于1000030%//
int x;
float y;
printf("你所消费的金额");
scanf("%d",&x);
switch((int)(x/3000))  //这是为了减少我们的case使用,因为case每次只能等于一个值//
{case 0:
y=0.03;
break;
//如果我们继续case 2的话就会涉及到其他范围的数据,比如5000-6000会优惠20%//
//我们如果单纯的继续下去就会使得5000-6000优惠10%//
//这时就需要用到嵌套//
default:
	switch((int)(x/5000))
	{
	case 0:
		y=0.1;break;
	case 1:
		y=0.2;break;
	default:
		y=0.3;break;	
	}
}
	printf("%f",y);
}

4:getchar的使用与给输入的指定内容计数

!!!!有误有误有误!!!!!!

利用++还有if else的结合

#include<stdio.h>
void main()
{

	//计算大写字母的数量UP,小写字母的数量LO,空格的数量SP//
	//数字的数量NUM,其余字符的数量STR//
	int UP=0,LO=0,SP=0,NUM=0,STR=0;
	char c;
	while(c=getchar()!='/n')
	//将自己键盘输入的值给赋给c前提是输入的值里没有空格,/n就是空格
	{
	if (c>='A'&&c<='Z')
		UP++;
	else if(c>='a'&&c<='z')
		LO++;
	else if(c==' ')
		SP++;
	else if(c>=0&&c<=9)
		NUM++;
	else
		STR++;
	}
	printf("UP=%dLO=%dSP%dNUM%dSTR%d",UP,LO,SP,NUM,STR);
}

5判断一个不多于五位的整数,并且求出它的每一位上的数字,然后将输入数字倒序

#include<stdio.h>#include<stdio.h>
void main()
{	
	int x,y,a,b,c,d,e,;
	printf("输入一个数字不多于五位的正整数");
	scanf("%d",&x);
	if (x<10)
		y=1;	
	else if(x<100)
		y=2;
	else if(x<1000)
		y=3;
	else if(x<10000)
		y=4;
	else 
		y=5;
	printf("这是%d位数",y);

	printf("\n");


//使用取余与取整得出想要的位数!!!!
		a=(int)(x/10000);
		b=(int)(x/1000%10);
		c=(int)(x/100%10);
		d=(int)(x/10%10);
		e=(int)(x%10);
		printf("万位为%d\n千位为%d\n百位为%d\n十位为%d\n个位为%d\n",a,b,c,d,e);


			
printf("给这些数字倒序\n");
{if(y==1)
printf("%d\n",e);
}
	if(y==2)
	{	d=(int)(x/10%10);
		e=(int)(x%10);
		printf("%d%d\n",e,d);
	}
		if(y==3)
	{c=(int)(x/100%10);
		d=(int)(x/10%10);
		e=(int)(x%10);
		printf("%d%d%d\n",e,d,c);
	}
		if(y==4)
	{	b=(int)(x/1000%10);
		c=(int)(x/100%10);
		d=(int)(x/10%10);
		e=(int)(x%10);
		printf("%d%d%d%d\n",e,d,c,b);
	}
		if(y==5)
	{	a=(int)(x/10000);
		b=(int)(x/1000%10);
		c=(int)(x/100%10);
		d=(int)(x/10%10);
		e=(int)(x%10);
		printf("%d%d%d%d%d\n",e,d,c,b,a);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值