本文为新手学习C++的练习记录
题目
题目描述
求两个整数的和。
输入格式
一行,两个用空格隔开的整数。
输出格式
两个整数的和。
样例 #1
样例输入 #1
1 2
样例输出 #1
3
样例 #2
样例输入 #2
10230 21312
样例输出 #2
31542
提示
对于 100 % 100\% 100% 的数据,输入的整数在 [ 1 , 4 × 10 18 ] [1, 4 \times {10}^{18}] [1,4×1018] 内。
解答
#include <iostream>
using namespace std;
int main(){
long long a, b;
cin >> a >> b;
cout << a+b;
return 0;
}
在写代码时遇到的问题
没有说明命名空间,报错
提示cin
和cout
没有定义,建议使用std::cin
、std::cout
,按照提示修改代码如下:
#include <iostream>
//using namespace std;
int main(){
long long a, b;
std::cin >> a >> b;
std::cout << a+b;
return 0;
}
这个代码可以跑通,在百度上搜索发现 std
是C++中的一个空间标识符,标准库里的函数或对象都需要用std
来限制 ,感觉有点像python里的 import
(以math库为例)。
## python以math库为例
## 输入两个数a b,用空格隔开,输出a、b的平方和再开根
import math
a, b = input().split(' ')
a, b = eval(a), eval(b)
print(math.sqrt(a**2+b**2))
也可以写成
from math import sqrt
a, b = input().split(' ')
a, b = eval(a), eval(b)
print(sqrt(a**2+b**2))
这里的sqrt
就不需要在前面加math
了。
(回归正题)所以我们可以在最前面提前说明使用命名空间std
,这样就可以了。
使用printf()
报错
想要把cout
变成printf()
,我是这么写的,出了两个错
#include <iostream>
using namespace std;
int main(){
long long a, b;
cin >> a >> b;
printf(a+b);
return 0;
}
- 出错在于需要添加
printf()
的头文件; printf()
里面不能直接写要输出的数,需要在里面写字符串。
应该要写成下面这样才对:
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
long long a, b;
cin >> a >> b;
printf("%d",a+b);
return 0;
}
代码有点多,需要答案的可以直接跳转到解答部分