本次的内容包括
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-5000为10%,5000-10000为20%,大于10000为30%//
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);
}
}