c言語の宿題です

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

c言語の宿題です

#1

投稿記事 by mt » 3年前

+:加算 -:減算 ×:掛け算 / 割り算 0:リセット p:終了> +(←ここは入力部分)
値>1.1(ここは入力部分)
結果:1.100000

+:加算 -:減算 ×:掛け算 / 割り算 0:リセット p:終了> /(←ここは入力部分)
値>1.1(ここは入力部分)
結果:0.550000

+:加算 -:減算 ×:掛け算 / 割り算 0:リセット p:終了> 0(←ここは入力部分)
リセットされました

+:加算 -:減算 ×:掛け算 / 割り算 0:リセット p:終了> +(←ここは入力部分)
値>1.1(ここは入力部分)
結果:1.100000

+:加算 -:減算 ×:掛け算 / 割り算 0:リセット p:終了> p(←ここは入力部分)
計算終了



以上のように作動するpログラムを木曜日までに作成して提出しなければならないのですが、どうすればいいのか全く分かりません。差し出がましいお願いですが、わかる方がいらっしゃれば私に構文を教えて頂きたいです。また、作成するにあたっていくつかじょうけんがあるんおでいかに記述します。

 ・main関数は計算したい内容の入力を終了の指示があるまで無限に繰り返す。
 ・無限ループはwhileを用いること(do whileかもしれない)
 ・main関数内には計算の一切を担うcal関数を用意すること。
 ・最初は0の結果を保持しており、指定された計算方法と値で計算を実行する
 ・引数はchar型の計算方法を示す変数と、double型の計算に用いる値を格納する変数である。
 ・リセットの時は、計算に用いられる変数は無視される 
 ・static,continue,brakeを用いる。

重ね重ね宜しくお願い致します。

白い変人

Re: c言語の宿題です

#2

投稿記事 by 白い変人 » 3年前

C言語の構文が分からないという事ですね。

それでは、C言語の解説サイトを提示致しますので、理解を深めてみましょう。

http://www.c-lang.org/

koudaill

Re: c言語の宿題です

#3

投稿記事 by koudaill » 3年前

mt さんが書きました:+:加算 -:減算 ×:掛け算 / 割り算 0:リセット p:終了> +(←ここは入力部分)
値>1.1(ここは入力部分)
結果:1.100000

+:加算 -:減算 ×:掛け算 / 割り算 0:リセット p:終了> /(←ここは入力部分)
値>1.1(ここは入力部分)
結果:0.550000
上の2回目の動作についてよくわかりません。
というのもプログラムの開始で0を保持する変数が存在していて、一回目の「+」の入力で 1.1を足し算し、結果が1.1になるのは理解できますが
2回目の動作で1.1で割る場合、答えが1になると思うのですが、どうでしょうか。

mt

Re: c言語の宿題です

#4

投稿記事 by mt » 3年前

二回目の動作で導き出される結果は、1.1 ではなく、1でした。ややこしくて申し訳ございません。

アバター
purin52002
記事: 235
登録日時: 4年前
連絡を取る:

Re: c言語の宿題です

#5

投稿記事 by purin52002 » 3年前

条件がいくつかあるようですが、その条件をヒントにできそうです

コード:

//引数はchar型の計算方法を示す変数と、double型の計算に用いる値を格納する変数
void cal(char keisan_houhou, double keisan_atai) {
    //最初は0の結果を保持しており、指定された計算方法と値で計算を実行する
    //static,continue,brakeを用いる。
    //値を保持するならstaticがつかえる?
    static double kekka = 0;
    どうにかしてkekkaを計算する
}

//main関数は計算したい内容の入力を終了の指示があるまで無限に繰り返す。
//main関数を無限に繰り返すのではなく、main関数の中の処理を無限に繰り返す?
int main() {
    //char型とdouble型の変数が使われるっぽいから宣言
    char keisan_houhou ;
    double keisan_atai ;

    //while無限ループを用いる
    while(1) {
        どうにかしてkeisan_houhouに値を代入
        
         //リセットの時は、計算に用いられる変数は無視される
         //static,continue,brakeを用いる。
         //ここでcontinueが使えそう
         if(keisan_houhou == '0') continue ;

         どうにかしてkeisan_ataiに値を代入

        //cal関数は多分無限ループの中で使う?
        //引数はchar型の計算方法を示す変数と、double型の計算に用いる値を格納する変数
        cal(keisan_houhou, keisan_atai);
    }
}
出された条件をヒントにしてここまで書けました。
(何も考えていないので間違っている部分があるかも^^;)

これで大体の条件を満たしたつもりですが、まだ不完全な部分があります。
ここまで書いておいてあれですが、めんどくさいので質問者様の実力向上のためにもご自身で書き上げてみてください^^

今回は条件というヒントがあったので何も考えませんでしたが、将来的には自分でどのようなコードを書けばいいか考えられるようになりたいですね^^
c++初心者を自負しています。
質問者さんには今後私にプログラミングを教えてくれるようにやさしく丁寧に教えるつもりです。ぎぶあんどていく^p^
回答者さんには精一杯感謝します。ぎぶおんりー^p^

返信

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