0.1から始めるプログラミング 競技のほう aoj10008

間違い例

#include <cstdio>
#include <iostream>
using namespace std;

int main(){
	int a,b;
	cin >> a >> b;
	cout << a / b << " " << a % b << " ";
	double a_d = a;
	cout << a_d / b << endl;
	return 0;
}

これではサンプルの半分しか通れなかった。最後の計算の精度が問題?
なんかググると、coutだと精度がなんかおかしいらしい

#include <cstdio>
#include <iostream>
using namespace std;

int main(){
	int a,b;
	double d = a*1.0/b;
	cin >> a >> b;
	cout << a/b << " " << a%b << " ";
	printf("%f\n",d);
	return 0;
}

都合よくprintfを使う。%なんたらってところミスって唸るはめに。日頃coutに頼っていたつけが

ちなみに一貫性をもたせるなら、

printf("%d %d %f\n",a/b,a%b,d);

としてもよい
しかしcoutの問題はさすがに泥沼だよなぁとか
数字だけならprintf一筋でもいいんですけどね
入力怖いな 何時出てくるんだろ