这样的一段c++代码用gCC是会编译错误的。
#include <iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
int m, n;
while (scanf("%d%d", &m, &n) != EOF)
{
int miny;
miny = m*n - pow(n - 1, 2) / 4;
printf("%d\n", miny);
}
return 0;
}
同时,使用scanf获取多组数据,若没有结束符,会出现输出多余的问题。
#include <iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
int m, n;
while (scanf("%d%d",&m,&n))
{
int miny;
miny = m*n - pow(n - 1, 2) / 4;
printf("%d\n", miny);
}
return 0;
}
而cin就不会。
#include <iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
int m, n;
while (cin>>m>>n)
{
int miny;
miny = m*n - pow(n - 1, 2) / 4;
printf("%d\n", miny);
}
return 0;
}
精度问题
cin和cout 是可以输出long long的