🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C

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

Q&A

1回答

522閲覧

Cで禁欲メーターを作っているのですが、エラー連発で困っています。

rinrin200011

総合スコア8

C

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

0グッド

0クリップ

投稿2021/01/21 06:22

編集2021/01/21 06:35

コードの内容としては、ユーザーに"yes"か"no"とselect変数に入力してもらい、select変数とyes_judge変数を比較し、正しかったらint型のdays変数が1個ずつ増えて行く。違ったら、days変数はリセットされるという仕組みです。どうかよろしくお願いします。。。

C

1#include <stdio.h> 2 3int main(void) { 4while(1){ 5 //変数宣言 6 char yes_judge = "yes", select; 7 int flag, i, days; 8 printf("さあはじめよう"); 9 printf("もしあなたが欲求を守れたのなら、yesと、そうでないのならnoと入力"); 10 11 while(1) { 12 //yesと入力されたか判定 13 int i=0, flag; 14 scanf("%s",select); 15 16 while(yes_judge[i]!='\0' && select[i]!='\0'){ 17 if(yes_judge[i]!=select[i]){ 18 flag = 1; 19 break; 20 } 21 i++; 22 } 23 } 24 25 //条件分岐の処理 26 if(flag==1){ 27 days = days + 1; 28 29 30 char str[4]; 31 sprintf(str_days, "%d", days); 32 33 printf("よくやった。あなたは今、"+ str_days +"日継続中だ!"); 34 35 } else { 36 days = 0; 37 printf("日付がリセットされた。また頑張ろう!"); 38 } 39 40 return 0; 41}

エラーの内容としては
Main.c:6:10: warning: incompatible pointer to integer conversion initializing 'char' with an expression of type 'char [4]' [-Wint-conversion]
char yes_judge = "yes", select;
^ ~~~~~
Main.c:14:20: warning: format specifies type 'char *' but the argument has type 'int' [-Wformat]
scanf("%s",select);
~~ ^~~~~~
Main.c:16:24: error: subscripted value is not an array, pointer, or vector
while(yes_judge[i]!='\0' && select[i]!='\0'){
~~~~~~~~~^~
Main.c:16:43: error: subscripted value is not an array, pointer, or vector
while(yes_judge[i]!='\0' && select[i]!='\0'){
~~~~~~^~
Main.c:17:25: error: subscripted value is not an array, pointer, or vector
if(yes_judge[i]!=select[i]){
~~~~~~~~~^~
Main.c:17:36: error: subscripted value is not an array, pointer, or vector
if(yes_judge[i]!=select[i]){
~~~~~~^~
Main.c:31:17: error: use of undeclared identifier 'str_days'
sprintf(str_days, "%d", days);
^
Main.c:33:55: warning: treating Unicode character as whitespace [-Wunicode-whitespace]
printf("よくやった。あなたは今、"+ str_days +"日継続中だ!");
^~
Main.c:33:66: warning: treating Unicode character as whitespace [-Wunicode-whitespace]
printf("よくやった。あなたは今、"+ str_days +"日継続中だ!");
^~
Main.c:33:58: error: use of undeclared identifier 'str_days'
printf("よくやった。あなたは今、"+ str_days +"日継続中だ!");
^
Main.c:41:2: error: expected '}'
}
^
Main.c:3:16: note: to match this '{'
int main(void) {
^
4 warnings and 7 errors generated.

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

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

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

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

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

Munosuke222

2021/01/21 06:32

まずエラーの内容を提示してください。問題を解決したいという「欲」が前面に出過ぎです。
dodox86

2021/01/21 06:41 編集

[質問が編集されたのでコメント削除]
guest

回答1

0

エラーの内容で検索したりとかしましたか???

Main.c:31:17: error: use of undeclared identifier 'str_days'

sprintf(str_days, "%d", days);

str_daysが宣言されてませんねえ。

Main.c:33:55: warning: treating Unicode character as whitespace [-Wunicode-whitespace]

printf("よくやった。あなたは今、"+ str_days +"日継続中だ!");

なんだか全角スペースが居る気がしますねえ。

Main.c:41:2: error: expected '}'

}

}が足りないんじゃないですかねえ。

ちゃんとしたエディタとか使ったら防げそうなことばかりなのでその辺も見直してみてはいかが。

投稿2021/01/21 06:43

Munosuke222

総合スコア158

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問