- 締切済み
誰か教えてください!
今、大学でアルゴリズムの勉強をしています。それで課題が出されたんですが、全く手のつけようもないんですが誰か教えてくれませんか。タクシー料金のプログラムを作っているんですが下のプログラムに" お客さんの人数= 人","総売上= 円","平均金額= 円/人","第 人目"と表示できる方はいないでしょうか?本当に困っています。誰か教えてください。 main() { int onsw,rc,charge,wkm; float km,tkm; onsw=1; tkm=0; printf(" タクシー料金 \n"); while(onsw== 1) { printf("あなたは何kmくらい走りますか="); scanf("%f",&km); if(km == 1000) { printf("営業所へ帰る"); onsw=0; } else { if( 0 < km && km <= 999) { printf("************走ってます**********\n"); if( km > 2 ) { wkm=km*1000.0-2000; rc=wkm/274; if(wkm%274!=0) rc=rc+1; charge=rc*80+660; } else charge=660; printf("ありがとうございます。料金は%d円です。\n\n",charge); tkm=tkm+km; } else printf("走れませんよ。\n"); } } /* 「日報」表示 と 総距離の表示 */ printf("総距離は%fkmです。",tkm); }
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- koma1000nin
- ベストアンサー率30% (342/1133)
いけませんなぁ~。手錠("{"と"}")の使い方が未熟な新米刑事さんとみて、#1さんの回答以外に「構造化」という記述スタイルをお目にかけて進ぜよう。 「|」は便宜上記入したのであって、こんな具合に出したり引っ込めたりして記述すれば手錠の使い方が上手くなり、逮捕寸前で取り逃がすようなヘマはしなくなるであろう。ただし美しく見せるために、長い記述の行は適宜短縮してあります。 #include <stdio.h> main() { int onsw,rc,charge,wkm,man,all; float km,tkm; onsw=1; tkm=0; man=all=0; printf(" タクシー料金 \n"); while(onsw== 1){ | printf("あなたは何km…"); | scanf("%f",&km); | if(km == 1000){ | | printf("営業所へ帰る"); | | onsw=0; | } | else{ | | if( 0 < km && km <= 999){ | | | man++; | | | printf("***走って…\n"); | | | if( km > 2 ){ | | | | wkm=km*1000.0-2000; | | | | rc=wkm/274; | | | | if(wkm%274!=0) rc=rc+1; | | | | charge=rc*80+660; | | | } | | | else | | | charge=660; | | | printf("あり…%d円です。\n",charge); | | | all+=charge; | | | tkm=tkm+km; | | | printf("お…=%d人/総…",all,all/man); | | } | | else | | printf("走れませんよ。\n"); | } | /* 「日報」と「総距離」の表示 */ | printf("総距離は%fkmです。",tkm); } } ※OKWeb画面に正しく表示させるために、適宜全角空白が使用されていますので、コピーはおやめください。
- Tsukasa0215
- ベストアンサー率22% (280/1257)
#include <stdio.h> main() { int onsw,rc,charge,wkm,man,all; float km,tkm; onsw=1; tkm=0; man=all=0; printf(" タクシー料金 \n"); while(onsw== 1) { printf("あなたは何kmくらい走りますか="); scanf("%f",&km); if(km == 1000) { printf("営業所へ帰る"); onsw=0; } else { if( 0 < km && km <= 999) { man++; printf("************走ってます**********\n"); if( km > 2 ) { wkm=km*1000.0-2000; rc=wkm/274; if(wkm%274!=0) rc=rc+1; charge=rc*80+660; } else charge=660; printf("ありがとうございます。料金は%d円です。\n",charge); all+=charge; tkm=tkm+km; printf("お客さんの人数=%d人/総売上=%d円/平均金額=%d円/人です\n\n",man,all,all/man); } else printf("走れませんよ。\n"); } } /* 「日報」表示 と 総距離の表示 */ printf("総距離は%fkmです。",tkm); } ※「お客さんの人数=n人」と「第n人目」は同じ事ですよね。
お礼
ご回答ありがとうございました。とてもすばらしい答えだったんですが、説明不足で思ったとおりの回答ではなかったです。お客さんの人数= 人","総売上= 円","平均金額= 円/人"を/* 「日報」表示 と 総距離の表示 */ のところに出したいんですが・・。あと"第 人目"というのを("あなたは何kmくらい走りますか=")と一緒に出るようにしたいんですが・・できないでしょうか?いろいろ注文してしまい悪いんですが。できたらよろしくお願いします。
お礼
ご回答ありがとうございました。たいへん見やすくなり、効率がよくなりました。どうもありがとうございました。