【分支结构】

        今天可能终于才开始有点代码写了,那么就先介绍一下scanf吧,它是一个输入函数,可以让你从键盘中输入一个数到电脑里去,看起来简单,但其实里面包含了很多细节。首先我们在使用scanf的时候格式大概是scanf(“格式化输入”,地址列表)前面那个格式化输入分为几种情况

scanf(“%d”,&H);这个里面我们来看阿,输入的是一个%d类型的数,也就是一个整型,那么你要知道,当你输入整型的时候,scanf就只会找你输入的整型,其他的都不要也就意味着什么空格tap就会直接被忽略,什么意思呢?scanf(“%d      %d”,&H&P)你这样写,但是在你输入的时候虽然scanf里面有多个空格但是呢,你不需要打,你想打多少个就多少个,scanf会把空格都会略,但是逗号不行。逗号你就必须和scanf里面一模一样,scanf(“%c”,&H)这种形式,我们从键盘输入的东西其实都是字符,就像123,如果是整型的话那它就是一个数字,但是我们从键盘输入的时候确实它是三个字符‘1’ ‘2’ ‘3’,所以在输入字符的时候这个空格就不会被忽略了,

关于%c,你想连续输入两个字符是不简单的,假设你现在要连续输入a,b到h和p的地址里去,你这样写scanf(“%c%c”,&h&p),那么得到的答案就会说一个a和一个回车,为什么呢?因为scanf的机制是scanf是从标准输入缓冲区中读取输入的数据,而%c的字符输入格式会接收回车字符,在输入第一个scanf时输入字符后按 回车结束,输入缓冲中保存了这个回车符,遇到第二个scanf时,它自动把这个回车符赋给了p。而如果第二个scanf的输入格式不是%c时,由于格 式不匹配,这个回车符会被自动忽略,所以只有在连续输入两个%c的格式时才会出现这样的问题!解决方法很简单:

 1。清空输入缓冲区

   第一个scanf后加入语句:fflush(stdin); //C语言清空输入缓冲区函数

   2。格式控制中加入空格

   将第二个scanf改为:scanf(" %c",&ch2);//在%号前面加一个空格

但是阿,前面也说到了从键盘输入一个12其实是由‘1’ ’2‘这两个字符组成的,那我们如何去连续输入呢,用输入字符串的方式即可!

        嗯....谁能想到一个天天用的scanf居然这么抽象,果然,知识都是很深奥的,只是学的深浅问题。

        switch语句

        switch (待列举的表达式)
{
    case 值1:
        语句1
    case 值2:
        语句2
     ....
    //default : //其他其他的情况
    //    语句n          
}

        怎么个运行法呢?其实就是让switch后面的表达式的值去和case所带的值去进行一个匹配,当它找到和它的值相同的值的时候就会执行这个case下面的语句,并且会一直执行下去,直到遇见break或者整个switch都结束为止。如果你的代码里面有default的话,那么如果没有一个case的值能匹配上的话就会直接去执行default里的语句。

        switch后面的可以是一个整数类型或字符类型的表达式或者变量,而case后面的只能是一个整数类型或字符类型的常量表达式或者常量,并且每个case的值都不能相同,但是不同的case下面的值却可以相同,default因为是不管怎样总是要等到确定没有case才执行所以位置可以随便放,你写开头也可以。如果不写default然后又没有匹配成功的话就啥也不执行。

        今天真是一波三折,一个scanf折磨了好久,然后又突然发现我的VS出现了只读不能编辑的情况,想要输入还得去改错,难搞!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值