文章目录
0 - 前言
ACM模式下,要手动处理输入输出(后台测试相当于有个人在键盘上一个个敲测试案例,根据屏幕上显示的内容判断代码是否正确),也就是说,ACM模式只是在黑盒测试,并不是像核心代码模式一样检查代码内的变量。
本文着重于总结ACM模式中各种输入与输出问题
参考:
1 - 输入
本文只使用C++的输入函数cin与输出函数cout,因此需要包含头文件
#include < iostream >
使用func函数表示对输入进行处理
1-1 确定个数变量(输入1次)
int main()
{
int a,b;
cin >> a >> b;
//func(a, b);
return 0;
}
1-2 确定个数变量(输入n次)
int main() {
int a, b, n;
cin >> n;
while (n--) {
//func(a, b);
}
return 0;
}
1-3 不定个数变量
int main()
{
int a,b;
while(cin >> a >> b)
//func(a, b);
return 0;
}
1-4 不定个数变量(以某标志结束)
int main()
{
int a ,b;
while(cin>>a>>b&&flag)
//func(a, b);
return 0;
}
1-5 定长数组
int main()
{
int n = 0;
cin >> n;
vector<int> a(n); //STL容器
//int a[1000]; //普通数组
for (int i = 0; i < n; i++)
cin >> a[i];
//func(a);
}
1-6 字符
int main() {
char ch = getchar();
while (ch) {
//func(ch);
ch = getchar();
}
return 0;
}
1-7 字符串
int main() {
string line;
while (getline(cin, line)) {
//func(line);
}
return 0;
}
注意,cin
在遇到空格、回车时,都会认为当前输入已经结束,自动切换到下一输入。因此,使用cin
填充输入时,空格与回车作用相同。
2 - 输出
cout << fixed << setprecision(2) << res << endl;
注意C++保存小数位数要引用头文件#include <iomanip>
,在要保存的小数变量之前加上“fixed << setprecision(x)”
表示保存x位