成为C++高手之最终版计算器
来源:互联网 发布:免费手机屏幕录制软件 编辑:程序博客网 时间:2024/05/22 12:11
下面做我们的计算器最终版。
当前还存在的问题是用户只能算一次。如果有人买一个一次性计算器,那么他肯定是个土豪。我们的计算器不能只给土豪用,所以要改成可以反复使用的。
使用循环语句就可以了,但是循环哪些代码呢?从用户输入到打印出结果这个过程要反复执行,代码如是:
enum OPT{ jia = 1, jian, cheng, chu};int main(void){ //保存用户输入的数 int number1; int number2; int opt;//运算符 //循环从输入到输出结果的过程 while(1){ //提示用户输入第一个数,需循环直到用户输入正确的数: int r; while(1){ printf("请输入第一个数:\n"); r = scanf("%d",&number1); //查看Scanf是否收到了正确的数 if(r==0){ printf("别调皮,这样不好玩,重来\n"); //清空输入流。如果没有这一句,输入流中残存的字符将导致scanf不等待用户输入。 int c; while ( (c = getchar()) != '\n' && c != EOF ) ; }else{ //输对了,跳出循环 break; } } //提示用户输入第二个数 while(1){ printf("请输入第二个数:\n"); r = scanf("%d",&number2); //查看Scanf是否收到了正确的数 if(r==0){ printf("别调皮,这样不好玩,重来\n"); //清空输入流。如果没有这一句,输入流中残存的字符将导致scanf不等待用户输入。 int c; while ( (c = getchar()) != '\n' && c != EOF ) ; }else{ //输对了,跳出循环 break; } } int result;//存放计算结果 //提示用户输入运算符 while(1){ printf("请输入运算符(%d%d%d%d分别对应加减乘除):\n",jia,jian,cheng,chu); r = scanf("%d",&opt); if(r==0){ printf("运算符也是数字,别搞错好吗?你这样让我怎么混? 重新输入吧\n"); //清空输入流。如果没有这一句,输入流中残存的字符将导致scanf不等待用户输入。 int c; while ( (c = getchar()) != '\n' && c != EOF ) ; //回到循环开始 continue; } //跟据运算符进行不同的运算 switch(opt){ case jia: //加 result = number1+number2; break; case jian: //减 result = number1-number2; break; case cheng: //乘 result = number1*number2; break; case chu: //除,现在只能整除 result = number1/number2; break; default: printf("运算符必须是1,2,3,4之一才行!重来\n"); continue; //回到循环开始,重新来一遍 } //当执行到这里时,说明运算符检查成功,应跳出while。 break; } //输出结果 printf("result : %d\n",number1,number2,result); } return 0;}
能完成这个程序,就掌握了最基本的入门知识。总结起来,应掌握以下概念:函数,变量,头文件,入口函数,参数,返回,while循环,if判断,switch case,宏,枚举,结构,声明,定义。
要想下一步顺利学习,需要将基本语法搞熟练,尤其是能快速区分定义与声明,调用函数与访问变量。要点如下:
- 函数定义语法四要素:返回值类型、函数名、参数、函数体,如
int add(int a,int b){ return a+b;}
- 函数调用语法两要素:函数名、参数,再加一个可选的:返回值。如
int r = add(2,4);
- 函数调用不能写在函数外面。
- 变量定义语法两要素:类型、变量名、再加一个可选的:初始值。如:
int r;
- 函数声明与定义的区别是有无大括号。
- 区分是调用函数还是使用变量的关键:有无小括号。如:
int a=abc;
abc肯定是一个变量;int a=abc();
abc肯定是一个函数。 - 变量声明与定义的区别是有无extern,有extern时就是声明,声明时不能初始化。比如:
extern int a;
就是声明,而int a;
就是定义。
上一篇:成为C++高手之while循环
下一篇:成为C++高手之指针与数组
4 0
- 成为C++高手之最终版计算器
- 怎样成为C 高手
- 成为高手之路(转)
- 成为Python高手之路
- 成为C++高手之函数
- 成为Lua高手之metatable
- 程序员修炼篇:成为C语言高手
- 网赚经验之谈:成为高手之路
- 成为java高手之路--java注释
- 如何成为编程高手之路
- Android之如何成为Android高手
- 成为C++高手之如何入门
- 成为C++高手之第一个程序
- 成为C++高手之轻松理解二进制
- 成为C++高手之条件语句
- 成为C++高手之if与switch
- 成为C++高手之宏与枚举
- 成为C++高手之while循环
- IO流类总结
- JDK的安装与环境变量配置
- Android反编译教程
- java-Thread
- iOS7中计算UILabel中字符串的高度
- 成为C++高手之最终版计算器
- 华为OJ——字符串分隔
- 安卓开发工具下载adt-bundle-windows-x86_64-20140702.zip
- 我的打字练习
- 单片机的下载方式分类
- android 图片内存问题
- eclipse 优化配置
- 多态/分类/扩展/协议 总结
- Android 获取当前系统时间