- 締切済み
課題で悩んでます
#include <stdio.h> void main(){ int okane; float kion; printf("今日のお金は?\n"); scanf("%d",&okane); printf("今日の気温は?\n"); scanf("%f",&kion); if( okane >=700&&kion>=30.0 ){ printf("冷やし中華を食べよう\n"); } if( okane >=700&&kion<30.0 ){ printf("ラーメンを食べよう\n"); } if( okane <=700){ printf("バイトしろ"); } } この文で論理演算子を抜いてifelse文に書き換えろという課題が出たのですが分からないので全文教えて下さい
- みんなの回答 (11)
- 専門家の回答
みんなの回答
- geeeeeeeee
- ベストアンサー率0% (0/0)
¥n /改行の意味 <= => /以上 以下 のレベル
- Tacosan
- ベストアンサー率23% (3656/15482)
やってみた: #include <stdio.h> #include <stdlib.h> int main(){ unsigned int okane; float kion; printf("今日のお金は?\n"); fflush(stdout); scanf("%u", &okane); printf("今日の気温は?\n"); fflush(stdout); scanf("%f", &kion); if((okane >= 700)*(kion >= 30.0)){ printf("冷やし中華を食べよう\n"); } else if((okane >= 700)*(kion < 30.0)){ printf("ラーメンを食べよう\n"); } if (okane <= 700) { printf("バイトしろ"); } return EXIT_SUCCESS; } 完全に動作が一致するわけじゃないが, まあいいだろう. ちょうど 700円持っているときに「冷やし中華 or ラーメンを食べよう」と「バイトしろ」の両方が表示されるとか, 「バイトしろ」の後で改行されないとかいくつか謎の挙動を示すが, それらはすべて元のプログラムを書いたやつのせいだ.
- 1108435
- ベストアンサー率43% (94/217)
>}elseif{( kion>30.0) >printf("冷やし中華を食べよう\n"); >if( okane >=700) >}elseif{(kion<30.0 ) >printf("ラーメンを食べよう\n"); >}else{( okane <=700) >printf("バイトしろ"); >} これじゃあエラーは出るよね。まず }else{(okane <= 700) は全く意味を成さない。else文の後に条件はこない。基本だよ。 if~else文を書くときは大きなネストを組むことを考えるのが普通だ。だからそうスクリプトを書いて見せたんだけど、理解できなかったみたいだね。じゃあ現実に近い形のスクリプト。条件の設定方法は人によって違うので、正解などというものはないけど。誰が書いてもいかに近い形になると思う。 <スクリプト> お金が700円以上あるか? 気温が30度以上あるか? ある場合:冷やし中華をたべよう ない場合:ラーメンにしよう お金が700円以下ならば バイトしろ 終了 この平文をこのままif~else文にしてみてごらん。
- Takuya0615
- ベストアンサー率21% (329/1502)
#include<stdio.h> void main(){ int okane; float kion; printf("今日のお金は?\n"); scanf("%d",&okane); printf("今日の気温は?\n"); scanf("%f",&kion); if( okane >=700) }elseif{( kion>30.0) printf("冷やし中華を食べよう\n"); if( okane >=700) }elseif{(kion<30.0 ) printf("ラーメンを食べよう\n"); }else{( okane <=700) printf("バイトしろ"); } これでエラーが出てしまうのですがどうすればいいですか教えてください あらーぐちゃぐちゃになってますね(汗) if(条件文) if(条件文) (結果) else (結果) else (結果) if else 文の構造はこんな感じですよ。
- layy
- ベストアンサー率23% (292/1222)
この一連の課題学習が無駄に終わりそうなので それは覚悟の上でのやり方だと思いますが・・・・。 プログラムは、人それぞれで記述開始カラム位置も違うことあります。 100人が回答して100人同じ回答になることはあるようでないし、 熟練した人が見ると全く同じ癖で記述があると、カンニング?と疑うこともあります。 >これでエラーが出てしまうのですがどうすればいいですか教えてください どんなエラーかは提示しましょう。 どんなエラーか、でヘルプを見るなりすればいいのですが、 要はすぐに答えが欲しい、とにかく課題をクリアしたいというところでしょうか。 「ネットで検索してそのまま使ったら不正データを発生させてしまってました。 自分の確認不十分です。」 こんな展開では、社会(仕事従事)においては通用しませんので、 少なくとも(カンニングと言えども)自分で見て問題ないという意識は必要です。 課題を見る限りまだ初級レベルです。 この先も続けるならどこかで本気になって自分で学習した方がいいですね。
- KAZUMI2003
- ベストアンサー率37% (77/208)
>}elseif{( kion>30.0) ちゃんと、基本的な構文を理解しましょう。 基礎です。基礎。
- Takuya0615
- ベストアンサー率21% (329/1502)
「今日のお金は?」<700→バイトしろ >=700 ↓ 「今日の気温は?」<30→ラーメンを食べよう >=30 ↓ 冷やし中華を食べよう。 こんな感じでわかるかな?
- oktuburero
- ベストアンサー率22% (102/446)
いいかげん自分で考えろよ。 少なくともこんな時期なんだから数ヶ月はC言語やっているはずだよな。 でその数ヶ月の勉強でわからないなら質問者は才能無い。退学しましょう。
- php504
- ベストアンサー率42% (926/2160)
全文回答は質問者さんのためにならないのでしません 部分でいいなら教えますがだめですか C言語のようですのでこれからはC/C++専用のカテゴリに質問した方がいいですよ
- 1108435
- ベストアンサー率43% (94/217)
全文は教えませんが、考え方のヒントなら教えられます。 まず、プログラムを作る際にはいきなりコーディングしないで、問題を把握するために構造文を書くようにしています。やってみると問題点がよくわかるようになるはず。 さて、ここでプログラムの全体の流れを考えてみる。 1.現在の手持ち金額を尋ねる 2.現在の気温を尋ねる 3.お金が700円以上か否か(これがifの第一条件よってそれに対するelseはどうなる?) 4.気温が30度より上か下か(これがifの第二条件もうわかったね) 5.条件により表示をする こうやって平文で書いてみるとプログラムは作りやすい。頑張って。
- 1
- 2
お礼
#include<stdio.h> void main(){ int okane; float kion; printf("今日のお金は?\n"); scanf("%d",&okane); printf("今日の気温は?\n"); scanf("%f",&kion); if( okane >=700) }elseif{( kion>30.0) printf("冷やし中華を食べよう\n"); if( okane >=700) }elseif{(kion<30.0 ) printf("ラーメンを食べよう\n"); }else{( okane <=700) printf("バイトしろ"); } これでエラーが出てしまうのですがどうすればいいですか教えてください .
補足
#include<stdio.h> void main(){ int okane; float kion; printf("今日のお金は?\n"); scanf("%d",&okane); printf("今日の気温は?\n"); scanf("%f",&kion); if( okane >=700) }elseif{( kion>30.0) printf("冷やし中華を食べよう\n"); if( okane >=700) }elseif{(kion<30.0 ) printf("ラーメンを食べよう\n"); }else{( okane <=700) printf("バイトしろ"); } これでエラーが出てしまうのですがどうすればいいですか教えてください