質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

3回答

4018閲覧

C言語のelseとif文が一致しません

Totyun

総合スコア2

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2021/04/30 15:56

最初の電子マネーの残額をキーボードから入力する.残額が1000円以上である間,支払金額を入力すると残額が支払金額分だけ減っていくようなプログラムを作成せよ.ただし,残額が1000円未満の場合には「チャージしてください」と表示して終了すること.また,支払金額が残額より多い場合は「残額が足りません!」と表示し,残額は減らないようにするプログラミングを作れたいのですがelse 文がifと一致しないのですがどうすればよいですか?

#include <stdio.h>

int main()
{

int i;
int pay;
while(i>0){
printf("残高は%d円です\n",i);

printf("支払金額:"); scanf("%d",&pay); if(i<pay){ printf("残額が足りません\n"); }else if(i<1000){ printf("チャージしてください\n");

}
}else{
i-=pay;
}

printf("残額が0円になりました\n終了します\n");

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2021/04/30 21:40 編集

ifとelseの問題さえ解決すれば、この質問は閉じるのでしょうか。新たな問題が発覚しそうな。(大抵、新たな質問が出て長引きがちになるので少し心配しています)
nob.

2021/05/01 02:20

> else 文がifと一致しない とはどういうことですか? 回答しようとする人に「一致しない」の内容を考えさせるのはあんまりです。 「else に対応する if が無い」ということですか? そうなら、そのように質問して下さい。 ついでですが、質問文の「最初の電子マネー…を作れたいのですが」の部分は質問者さんが直面している障害とどのような関係なのでしょう? この文は無くてもいいのでは?
episteme

2021/05/01 03:05

「最初の電子マネーの残額をキーボードから入力する」部分がコード上にありません。
guest

回答3

0

どの{と、どの}が対応しているのかを考えてみましょう。

投稿2021/04/30 16:08

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rinjinto

2021/04/30 17:28

わかりやすくするために{}の間は1文字字下げしてみましょう。 その中にもう1つ{}があったらさらに1文字字下げをします。 そうすればどこの{ }が対応しているかわかりやすくなります。
rinjinto

2021/04/30 17:29

例えばこんな感じです if(i<pay){  printf("残額が足りません\n"); }
guest

0

インデントつけてみた:

C

1#include <stdio.h> 2 3int main() { 4 5 int i; 6 int pay; 7 while (i > 0) { 8 printf("残高は%d円です\n", i); 9 10 printf("支払金額:"); 11 scanf("%d", &pay); 12 13 if (i < pay) { 14 printf("残額が足りません\n"); 15 } 16 else if (i < 1000) { 17 printf("チャージしてください\n"); 18 } 19 } 20 else { 21 i -= pay; 22 } 23 24 printf("残額が0円になりました\n終了します\n"); 25}

else が while-loop の外にハミ出してますね。

投稿2021/05/01 06:06

episteme

総合スコア16612

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

よくカッコをみましょう。
最後のelseにはifがありませんよ

投稿2021/04/30 23:13

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問