C言語の課題です

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

C言語の課題です

#1

投稿記事 by もち » 12年前

問題は
ある駐車場の駐車料金は1 時間100 円だが、24 時間以内であれば800 円を上限としている。ただし、
24 時間を超えて駐車した場合の料金は1 日ごとに800 円となる。このとき、駐車時間を入力すると料
金を表示するプログラムを作成せよ。入力される数値として、正の整数値に対応すること。
で自分の書いたコードは

コード:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
  int time,b;
  printf ("time=");
  scanf("%d",&time);
  if(time>=24){
   b=time%24;
   if(b=0){
   printf("money=%d \n",time/24*800);
  }
   else{
   printf("money=%d \n",(time/24+1)*800);
  }
 }
  else{
   printf("money=%d \n",time*100);
 }
  exit(0);
}
です
でもこれだと24を入力しても1600になってしまいます
多分12行目が動いてないんだと思うのですがどうしたらいいですか?
初心者とも言えないほどの初心者の質問ですいません

きゃりーわんわん
記事: 34
登録日時: 12年前

Re: C言語の課題です

#2

投稿記事 by きゃりーわんわん » 12年前

もち さんが書きました:

コード:

   if(b=0){
   printf("money=%d \n",time/24*800);
  }
上記コードのif文は意図した通りに動作しません。
C言語において、"="は代入です。
等しいかどうかは"=="です。

もち

Re: C言語の課題です

#3

投稿記事 by もち » 12年前

なるほど
習ったのにすっかり忘れてました
ありがとうございます!

YuO
記事: 947
登録日時: 14年前
住所: 東京都世田谷区

Re: C言語の課題です

#4

投稿記事 by YuO » 12年前

直接質問と関係ないので控えていましたが,このままでは
  • 9時間駐車したら900円
  • 23時間駐車したら2300円
  • 24時間駐車したら800円
という結果が出てしまいますよ。
time * 100で計算するのは,timeが8以上では打ち止めにしておかないといけません。

問題文を
  • 1日ごとに800円
  • ただし,連続8時間以下の利用では1時間あたり100円とする (今回は8時間未満としても同じ事になる)
というふうに読み替えて,プログラムを組むと上記のようなことがおこらなくなります。

閉鎖

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