打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
成为C++高手之条件语句

scanf函数

printf是向控制台输出,scanf是从控制台输入,也就是从控制台获取用户输入的东西。当然也是格式化的方式,比如要获取用户输入的整数:
int number;
int r = scanf(“%d”,&number);

因为要用一个变量保存用户输入的东西,所以scanf()用输出参数的形式返回用户输入的值。所以第二个参数传入的是number的地址(&是取地址运算符)。用户输入的如果是数字,就保存那个数到number中,并且r是非0值;如果不是数字, r是0,number中是随机数,此时number不应该被使用。

注意用scanf()每次最好只获取一个数,否则很容易引起混乱。

写一个计算器

学到这里,可以写一个简陋的小程序了:计算器。第一版需求很简单:用户输入两个整数,输出和,退出。代码如下:

#include <stdio.h>int main(void){    //保存用户输入的数    int number1;    int number2;    //提示用户输入第一个数:    printf("请输入第一个数:\n");    scanf("%d",&number1);    //提示用户输入第二个数    printf("请输入第二个数:\n");    scanf("%d",&number2);    //计算    int he = number1+number2;    //输出结果    printf("%d+%d = %d\n",number1,number2,he);    return 0;}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

控制语句

上一节的例子其实很脆弱,用户输入不是数字的话,依然能计算出结果,这就让用户觉得很扯蛋了。改进一下吧。我们判断scanf的返回值,如果是0,就不计算并警告用户,否则就输出结果,程序如下:

#include <stdio.h>int main(void){    //保存用户输入的数    int number1;    int number2;    //提示用户输入第一个数:    printf("请输入第一个数:\n");    int r =scanf("%d",&number1);    //查看Scanf是否收到了正确的数    if(r==0){        printf("别调皮,这样不好玩,我走了\n");        //程序退出        return 0;    }    //提示用户输入第二个数    printf("请输入第二个数:\n");    r = scanf("%d",&number2);    if(r==0){        printf("别调皮,这样不好玩,我走了\n");        //程序退出        return 0;    }    //程序运行到这里说明两次输入都正确    //计算    int he = number1+number2;    //输出结果    printf("%d+%d = %d\n",number1,number2,he);    return 0;}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

用if来进行判断。判断条件放在小括号里。r==0 是一个算式,运算符“==”表示计算两边是否相等。如果相等,结果就是真(true),否则就是假(false)。结果是真的话,就进入if的大括号中执行,否则就略过大括号。

If的判断条件可以写的很复杂,但要看懂它,只需记住一个原则:那里面都是算式,最终计算结果为0就是false,非0就是true。负数也是true啊。至于if里如何写出组合条件,请自行上网查找,或参考与此文章配套的视频:http://edu.csdn.net/course/detail/2057。欢迎C语言初学者加入此群讨论:535807023 。

计算器第二版

这一版让我们的计算器支持加减乘除。要支持加减乘除,除了获取用户输入的两个运算数之外,还应获取运算符。运算符也可以用数字来代表,比如我们跟用户约定,1代表加,2代表减,3代表乘,4代表除。代码如下:

int main(void){    //保存用户输入的数    int number1;    int number2;    int opt;//运算符    //提示用户输入第一个数:    printf("请输入第一个数:\n");    int r =scanf("%d",&number1);    //查看Scanf是否收到了正确的数    if(r==0){        printf("别调皮,这样不好玩,我走了\n");        //程序退出        return 0;    }    //提示用户输入第二个数    printf("请输入第二个数:\n");    r = scanf("%d",&number2);    if(r==0){        printf("别调皮,这样不好玩,我走了\n");        //程序退出        return 0;    }    //提示用户输入运算符    printf("请输入运算符(1234分别对应加减乘除):\n");    r = scanf("%d",&opt);    if(r==0){        printf("运算符也是数字,别搞错好吗?你这样让我怎么混? 我走了\n");        //程序退出        return 0;    }    //程序运行到这里说明两次输入都正确    //检查是运算符是否是1234之一    if(opt == 1 || opt == 2 || opt == 3 || opt == 4){        int result;//存放计算结果        //跟据运算符进行不同的运算        if(opt == 1){            //加            result = number1+number2;        }        if(opt == 2){            //减            result = number1-number2;        }        if(opt == 3){            //乘            result = number1*number2;        }        if(opt == 4){            //除,现在只能整除            result = number1/number2;        }        //输出结果        printf("%d+%d = %d\n",number1,number2,result);    }else{        printf("运算符必须是1,2,3,4之一才行!走了\n");    }    return 0;}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64

else表示if条件的运算结果为false时执行的代码块。判断条件中的“||”表示或运算。意思就是如果opt等于1或opt等于2或opt等于3或opt等于4,那么条件成立。否则就执行else里的代码。

上一篇:成为C++高手之如何同时返回两个值
下一篇:成为C++高手之if与switch 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
转载统计数中二进制1的个数
113.实矩阵乘法运算
笔记1
C语言入门教程-Printf:读取用户输入
多记记吧、、、
C语言解二元一次方程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服