emmm.......写了几天暑假作业,现在整个人都飘了,见谅
还有就是觉得自己只有对着电脑的时候才会平静下来以上全是废话
简单的计算操作
上一篇我们就上手实践了一下在C++下的标准输出,但是在实际的题目或者项目中不可能是那么简单
(弱爆了)的输出,我们今天就来看看在C++下的简单计算
- 我编撰了一道很简单的题目:
题目:我们可爱的emmm.....小茗同学
(绝对和我的名字没有关系!!!)因为在期末考试中的计算题一直出错被数学老师“温柔”的提了一个醒,所以Ta就“自愿”开始练习计算题了,但是我们的小茗同学多么的聪明马上就想到可以找聪明的你为他编写一个可以做A+B的程序(A,B从键盘输入,A,B为整数),那么请你试一试:
输入:1 2
输出:3
- 题解:
其实也不是什么大问题,把题目提炼一下:那我打那么多干啥?
现在我们开始吧:
1. 我们应该怎么办呢?
2. 我们当然是把数字输入进来,然后计算啊!
3.所以这里我们就可以见到一个新东西“cin>>
”,Ta是C++中的标准输入,在#include<iostream>
里面的,注意不要把“>>
”打成了“<<
”或者“《《
”。
4.至于加法咋搞?当然是直接搞啊,直接打个+
不就行了。
看到这里我相信有人就写出了下面的代码:
#include<iostream>
using namespace std;
int main()
{
cin>>a>>b;
cout<<a+b<<endl;
return 0;
}
然后我们把这段代码拉出去编译一下,就会得到这个效果:
![18557396-cd0a163a0a00abc6.png](https://i-blog.csdnimg.cn/blog_migrate/803366c86e7da7d15ea5b79f7efe570d.webp?x-image-process=image/format,png)
- 看吧直接就炸了,有错!!!为什么?那么我们就按照图片上的标号一个一个来说:
1.就是那个红了的地方(当然你也可以改个颜色),就是你这段代码编译最开始无法进行的地方(很有可能不是错误点,以后你们会经常遇到)
2/3.这个就是Dev-c++这个编译器给你的一个错误提示了:
错误提示
那神马东西是没有申明?
我们可以把我们输入到计算机内的数据都想象为放在一个个盒子里面,需要的时候拿出来用就叫做
调用
;而这些盒子就叫做变量
;每一个盒子我们都要给TA取一个名字,就叫做变量名
,我们还必须告诉计算机这个盒子叫什么,这就叫做定义
或者申明
,而且不同大小不同款式的盒子还有有姓吧,那就是数据类型
,一个人要有名有姓而且还要户口登记,那么一个变量就要有变量名
有数据类型
而且还要变量申明
(至于有多少数据类型,我们以后分解,当然你也可以查查资料)
- 所以我们要用两个
int
的变量a和b来储存我们输进去的值,还有一个同样为int
的变量sum,来储存a+b的值。(当然可以不用sum,但是为了初学理解方便我们还是写一下)
一些命名规范(不完整后面会有所补充,大家先看着):
1)使用能代表数据类型的前缀。 (如:
int_a
)
2)名称尽量接近变量的作用。(如:求和:sum
)
3)如果名称由多个英文单词组成,每个单词的第一个字母大写。
4)由于库函数通常使用下划线开头的名字,因此不要将这类名字用作变量名。 (如i
)
5)局部变量使用比较短的名字,尤其是循环控制变量(又称循环位标)的名字。
6)外部变量使用比较长且贴近所代表变量的含义。
7)函数名字使用动词,如Get_char(void)
。
8)变量使用名词,如iMen_Number
。
下面就是参考代码(还是扒下来就可以跑的):
/*开头的三行就不用多做解释了,
有问题请看上一篇,
后面就不做解释了。
*/
#include<iostream>
using namespace std;
int main()
{
//我们先申明三个变量a,b,sum
int a,b,sum;
//利用cin从键盘读入a,b两个变量的值
cin>>a>>b;
//计算出a+b的值sum
sum=a+b;
//输出sum的值
cout<<sum<<endl;
return 0;
}
运行效果:输入任意的整数,但是还是有一定的限制的,我们下面来谈
![18557396-529c13b9b6a8ee74.png](https://i-blog.csdnimg.cn/blog_migrate/7079d70229c06b0d7a01ba8ad2b5c500.webp?x-image-process=image/format,png)
回车!!!!!!
![18557396-c8c444d2f976991b.png](https://i-blog.csdnimg.cn/blog_migrate/2a51418a3ba419953f9043c373cbdcba.webp?x-image-process=image/format,png)
我们算是完成了这一阶段
但是!!!
肯定有非常细心且无聊的小伙伴发现了一个问题,当输入的数据过大就会出问题:(就像下面一样)
![18557396-c8b4c3aa2e465f6a.png](https://i-blog.csdnimg.cn/blog_migrate/cbfb173c3816d279a09110025e6922b7.webp?x-image-process=image/format,png)
![18557396-ff0a55abf1320727.png](https://i-blog.csdnimg.cn/blog_migrate/f23d5435b455e819f4bd683fd7f7f321.webp?x-image-process=image/format,png)
竟然 ——
算错了!!!!!!这么大的两个数据加起来居然都是负的!!!
那是为啥?
这就是我上面提过的数据类型
了,TA是那么的重要,我们后面的文章(毕竟我们现在在说计算)再聊。现在我们只需要知道int
在32位的XP下是(int
是有符号的!!!)至于为什么会算出来-2147418114我在后面的文章中会有解释的
:
![18557396-da51d99a2c6173ce.png](https://i-blog.csdnimg.cn/blog_migrate/c71d7bf9198d4e0f40d8d014107b3ef3.webp?x-image-process=image/format,png)
在最后我会把测试自己电脑上的
int
大小的代码放上。
- 你以为这就完了?不不才刚刚开始呢!!!!
小茗同学的练习册上又不是只有加法,还有减法,除法,乘法,一元二次方程,他要让我们帮他都搞定(有没有想打他的冲动?),冷静冷静,我们慢慢地,一个一个的来,写完再去打他
- 减法分析:
1.我们还是只有两个数据,所以我们直接把+
改成-
不就好咯。这还不简单
2.那我就直接放代码了
#include<iostream>
using namespace std;
int main()
{
/*我们先申明三个变量a,b,dif
a,b用来储存从键盘读入的两个变量
dif用来储存a-b的值
*/
int a,b,dif;
//利用cin从键盘读入a,b两个变量的值
cin>>a>>b;
//计算出a-b的值dif
dif=a-b;
//输出dif的值
cout<<dif<<endl;
return 0;
}
![18557396-43693fd1938bb847.png](https://i-blog.csdnimg.cn/blog_migrate/b95764876adf37e338413aa99f08bfb3.webp?x-image-process=image/format,png)
![18557396-c62f4374171c11fa.png](https://i-blog.csdnimg.cn/blog_migrate/80f2e6957740233c11140dce43c7760a.webp?x-image-process=image/format,png)
看了这一组数据的测试,肯定有一个疑问:减法不像加法全是结果正整数,那么如果遇到了负数改怎么办?直接跑就是了,只要不超出
int
的范围就行了,
int
是有符号的!!!
![18557396-da51d99a2c6173ce.png](https://i-blog.csdnimg.cn/blog_migrate/c71d7bf9198d4e0f40d8d014107b3ef3.webp?x-image-process=image/format,png)
话不多说我们直接放图:
![18557396-77a45aedc2c9ed60.png](https://i-blog.csdnimg.cn/blog_migrate/f90fc2d98aadb5693f1fce5f2dff4ea1.webp?x-image-process=image/format,png)
![18557396-e8f1c29e8d615244.png](https://i-blog.csdnimg.cn/blog_migrate/8e87a89ab9e5edcc07ad2c1c51f09c21.webp?x-image-process=image/format,png)
![18557396-4e75f060f9bbae01.png](https://i-blog.csdnimg.cn/blog_migrate/9868bdbf6b90cb2d955399a390940eee.webp?x-image-process=image/format,png)