oj问题
OJ 系统
输入输出 格式问题
常见的输入格式:
预先不知道输入数据的组数 读到文件结尾
预先知道输入数据的组数 先读入数据组数然后循环读入数据
只有一组数据
预先不知道多少组数据
while(cin>>a>>b)
{
cout << a+b << endl;
}
预先知道多少组数据
cin >> n;
for(int i=0;i<n;i++)
{
int a,b;
cin >> a >> b;
cout << a+b << endl;
}
只有一组数据
cin >> a >> b;
cout << a+b << endl;
输出格式:
注意细节
不需要输出case 数
需要输出case 数
每个case后有空行
两个case之间有空行
cin >> n;
for(int i=0;i<n;i++)
{
int a,b;
cin >>a >>b;
if(i>0)
cout << endl;
cout << "case" << i+i << a+b << endl;
}
字符串的输入细节
cin 对于字符串的读入都是到空白就结束的
所以输入带空白的字符串的时候
最好用cin.getline()
例子: 要读入一组数 不知道有多少个 但是这些数占一行 空白分隔
那么 就将其看作一个字符串 将其整体读入 在利用字符串的分隔split 得到每个数据
c的scanf 和gets 比cin 快很多 用时要求的问题
输出细节:
字母大小写
换行问题
case后面的#之类的
行末一般有\n 但是一般没有空白的 不能轻易加上
考虑效率 用printf代替cout
常见错误
编译错误
答案正确
格式错误 多输出空白
答案错误
运行超时 程序太慢 不一定对错
内存超限 使用内存太多
输出超限 输出太多
返回非零 c main返回了非0值
浮点错误 除以0
运行错误 指针乱指
段错误 指针越界