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

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

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

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

5回答

3048閲覧

C言語初心者です。何故かエラーが出てしまいます。

tyaaaaaaaaaaras

総合スコア134

C

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

1クリップ

投稿2020/12/15 16:03

編集2020/12/16 03:34

C言語のプログラムを作りました。エラーが出てしまいます。

【問題】
妥当なチップ額を表形式で出力するプログラムを作成してください。1ドルから100ドルまで1ドル刻みでインクリメントし、チップの比率は 10%,15%,20% とします。1行表示するごとにユーザーに続けるかどうかを尋ね、処理を続けない時はBreak文でループを脱出してプログラムを終了します。

プログラムを作ってみたのですが、画像の丸で囲んでいる部分にエラーが出てしまいます。エラー内容は、「式が必要です」です。ですが、どのように書けばいいのかがわかりません。

僕はこのプログラムを完成させたいです。よろしくお願いします。

イメージ説明

C言語

1#include<stdio.h> 2#include<conio.h> 3 4int main(void) 5{ 6 char con; 7 int count; 8 int dollar; 9 float chip10, chip15, chip20; 10 11 for (count = 1; count <= 100; count++) { 12 13 dollar = count * 100; 14 chip10 = count * 1.10; 15 chip15 = count * 1.15; 16 chip20 = count * 1.20; 17 18 printf("%d\tドルの時、10%のチップ金額は", dollar); 19 printf("%d\t円、15%のチップ金額は", chip10); 20 printf("%d\t円、20%のチップ金額は", chip15); 21 printf("%d\n円です。", chip20); 22 23 for (; ; ) { 24 printf("続けますか? はい[Y] または いいえ[N]を押してください。 :"); 25 con[] = getche(); 26 if(con[] == "Y") { 27 break; 28 } 29 else if (con[] == "N") { 30 break; 31 } 32 else { 33 ; 34 } 35 } 36 if (con[] == "N") { 37 break; 38 } 39 } 40 return 0; 41}

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

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

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

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

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

dodox86

2020/12/16 00:21

この手の質問はガイドラインから外れている、との指摘済みだったはずですが。 [C言語です。採点お願いします。]https://teratail.com/questions/308607 (こちらの質問は、複数の回答をいただいているのに、閉じる様子もありませんね)それを無視して尚、投稿する事情が何かあるのでしょうか。
episteme

2020/12/16 02:14

- まずはコンパイル/実行できて - 仕様のとおりに動くことを確認できて 採点はそれから。
miyabi_takatsuk

2020/12/16 03:11

問題・課題なんだったら自分でクリアしなさいよ。 正しいやり方調査するのも問題の内ですよ。
guest

回答5

0

いきなりc言語の文法にあってません
コンパイルさえできないではおはなしになりません

0点です

投稿2020/12/15 20:27

y_waiwai

総合スコア87774

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

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

tyaaaaaaaaaaras

2020/12/15 21:31

間違えて違うものを載せていました。 載せ直します。
y_waiwai

2020/12/15 23:52

Main.c:6:15: error: expected expression char con = [W];
hero1000

2020/12/16 00:15

ご自身でコンパイル、動作確認はしたのでしょうか? ソースコードを作ったので見てください、だけでは正解が出力されればいいのか、記述としてエレガント(?)なのか、どういう観点で見ればいいのかわかりません。
fana

2020/12/16 03:03

高評価の理由:「0点」に同意なので.
miyabi_takatsuk

2020/12/16 03:13

teratailで質問してる時点0点でしょうね。 学校の課題・問題なら、まず目の前の先生に聞くべきですね。
fana

2020/12/16 03:30

(同感ではありますが,ここでの採点対象はあくまでも提示されたコードであって,行為を採点し始めると別の方向に行っちゃう感,みたいな)
tyaaaaaaaaaaras

2020/12/16 15:50 編集

なぜ学校の課題だと決めつけるのですか? なんか時々いる常に憶測で話進めちゃう系の人ですか?w 自分で勉強している本の問題ですけど笑
fana

2020/12/17 01:24

if( 学校の課題・問題なら){ まず目の前の先生に聞くべき } という意味合いでは.本なら本で同様に, if( ある本の問題なのであれば ){ その本のより手前側のページを読み返してみるべき } ということになるのかな. その本に con[]=="Y" とかいう記法が書いてあるならばその本が悪いが.
y_waiwai

2020/12/17 02:02

いぜん意味不明なコードになってます conという変数はchar型です。それに[]つけてアクセスはできません。 もちょっとC言語の基本的な文法を学びましょう 繰り返しになりますが、コンパイルさえ通らないコードではおはなしになりません
tyaaaaaaaaaaras

2021/03/29 02:42

waiwaiさんありがとうございます。 今はもう読み直して間違いに気づきました
guest

0

ベストアンサー

あなたが修正したソースを再確認しました。
1.ソースに全角空白が混じっています。
添付図の黄色いところ。
イメージ説明

全角空白を、明示的に表示可能なエディタを使うのがよろしいかと。

2.全角空白を半角に置換後、以下のようにしてください。これでコンパイルエラーは取れます。
""で括った文字は文字列になります。
1文字を扱う場合は、''で括ります。

C

1#include<stdio.h> 2#include<conio.h> 3 4int main(void) 5{ 6 char con; 7 int count; 8 int dollar; 9 float chip10, chip15, chip20; 10 11 for (count = 1; count <= 100; count++) { 12 13 dollar = count * 100; 14 chip10 = count * 1.10; 15 chip15 = count * 1.15; 16 chip20 = count * 1.20; 17 18 printf("%d\tドルの時、10%のチップ金額は", dollar); 19 printf("%d\t円、15%のチップ金額は", chip10); 20 printf("%d\t円、20%のチップ金額は", chip15); 21 printf("%d\n円です。", chip20); 22 23 for (; ; ) { 24 printf("続けますか? はい[Y] または いいえ[N]を押してください。 :"); 25 con = getche(); //修正 26 if(con == 'Y') { //修正 27 break; 28 } 29 else if (con == 'N') { //修正 30 break; 31 } 32 else { 33 ; 34 } 35 } 36 if (con == 'N') { //修正 37 break; 38 } 39 } 40 return 0; 41} 42

投稿2020/12/16 03:12

編集2020/12/16 03:20
tatsu99

総合スコア5438

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

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

tatsu99

2020/12/16 03:15

失礼しました。エラーをとりたいという質問になっていますね。 回答を修正します。但し、全角空白は半角に修正してください。
tyaaaaaaaaaaras

2020/12/16 03:36

本当にご丁寧に説明して頂きありがとうございます。 半角に修正しました!! どのコンパイラでも、全角空白はエラーが出るんですか?
tatsu99

2020/12/16 03:45

普通は、エラーになります。visual studioは使用していないので、判りませんが、エラーにならないかも知れません。
tyaaaaaaaaaaras

2020/12/16 15:53 編集

あなたをベストアンサーに設定しますので、もう少し教えていただきたいことがあります。 僕はこのコードを勉強した通りに書いたつもりなのですが、エラーが出ました。 同じプログラムでも使うコンパイラ?によってエラーになったりならなかったりするんですか?
tatsu99

2020/12/16 23:47

>同じプログラムでも使うコンパイラ?によってエラーになったりならなかったりするんですか? あるか、ないかでいえば、あります。但し、そのようなケースが頻繁に起こるわけではありませんが・・・。 全角空白の件であれば、むしろ、全角空白をエラーにしないコンパイラのほうが少ないです。
tyaaaaaaaaaaras

2020/12/23 00:35

ありがとうございました! とても良く理解することができました!
guest

0

char con;

これに対し、con[] は何を意味すると思ってます?

入力された文字を代入したいなら

con = getche();

※ int n に 123 を代入したいなら n = 123 ってやるでしょ? n[] = 123 とは書かんでしょ?
それとおんなじ。

投稿2020/12/16 04:43

編集2020/12/16 04:44
episteme

総合スコア16614

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

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

guest

0

【問題】
妥当なチップ額を表形式で出力するプログラムを作成してください。1ドルから100ドルまで1ドル刻みでインクリメントし、チップの比率は 10%,15%,20% とします。1行表示するごとにユーザーに続けるかどうかを尋ね、処理を続けない時はBreak文でループを脱出してプログラムを終了します。

間違っている点は次の通りだと思います。

  • 問題文で期待する出力の単位はドルなのに円になっている
  • 問題文で期待する表形式の出力になっていない
  • そもそもコンパイルが通らない

投稿2020/12/19 18:55

TaroToyotomi

総合スコア1430

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

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

0

コンパイルしましたが、以下のエラー及び警告がでます。(ソースファイルはgoo2.c)

<gcc goo2.c -o goo2.exe --input-charset=cp932 --exec-charset=cp932>
goo2.c: In function 'main':
goo2.c:6:15: error: expected expression before '[' token
char con = [W];
^
goo2.c:6:16: error: 'W' undeclared (first use in this function)
char con = [W];
^
goo2.c:6:16: note: each undeclared identifier is reported only once for each function it appears in
goo2.c:26:10: warning: implicit declaration of function 'If' [-Wimplicit-function-declaration]
If (con = "Y"){
^~
goo2.c:26:18: warning: assignment to 'char' from 'char *' makes integer from pointer without a cast [-Wint-conversion]
If (con = "Y"){
^
goo2.c:26:24: error: expected ';' before '{' token
If (con = "Y"){
^
;
goo2.c:36:15: warning: assignment to 'char' from 'char *' makes integer from pointer without a cast [-Wint-conversion]
if (con = "N"){
^

投稿2020/12/16 00:28

tatsu99

総合スコア5438

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

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

tyaaaaaaaaaaras

2020/12/16 00:46

すいません。乗せるコードが違いました。
tatsu99

2020/12/16 00:49

質問は修正できます。正しいソースを載せてください。
tyaaaaaaaaaaras

2020/12/16 02:42

はい。すいません。今修正します
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問