小数点以下が表示されない

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ダイキ

小数点以下が表示されない

#1

投稿記事 by ダイキ » 9年前

割り算した後表示するときに小数点以下が表示されないので
間違いを指摘してください

コード:

#include <iostream>
#include <algorithm>
#include <iomanip>
#include <string>
#include <cmath>
using namespace std;
int main(){
	int a,b;
	double i;
	string op;
	cin>>a>>op>>b;
	if(op == "+"){
		i = a+b;
	} else if(op == "-"){
		i = a-b;
	} else if(op == "*"){
		i = a*b;
	} else if(op == "/"){
		i =(double)a/b;
	} else{
		return 0;
	}
	cout<<setprecision( 6 )<<i<<endl;

	


	return 0;
}

box
記事: 2002
登録日時: 14年前

Re: 小数点以下が表示されない

#2

投稿記事 by box » 9年前

私のところではうまくいきました。試しに
7
/
4
と入力したところ、
1.75
という結果を得ました。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

inec0310
記事: 15
登録日時: 9年前
住所: 埼玉県

Re: 小数点以下が表示されない

#3

投稿記事 by inec0310 » 9年前

私の環境でもうまくいきました
7
/
5

1.4
となりましたソースには問題はないかと

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: 小数点以下が表示されない

#4

投稿記事 by みけCAT » 9年前

コード:

6 / 3
を入力したところ、

コード:

2
という出力を得ました。

期待する仕様が書かれていないのが間違いでしょう。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

かずま

Re: 小数点以下が表示されない

#5

投稿記事 by かずま » 9年前

小数点を出したいのなら fixed を使えばよいのでは?

コード:

#include <iostream>

using namespace std;

int main()
{
    int a, b;
    double i;
    char op;
    cin >> a >> op >> b;
    if (op == '+')
        i = a + b;
    else if (op == '-')
        i = a - b;
    else if (op == '*')
        i = a * b;
    else if (op == '/')
        i = (double)a / b;
    else
        return 0;
    cout << fixed << i << endl;
    return 0;
}
op を string にすると、3+5 で、a = 3, op = "+5" となるので、
op は char のほうがよくないですか?

閉鎖

“C言語何でも質問掲示板” へ戻る