以下のプログラムですが
#include <stdio.h>
int main()
{
Int col;
char i;
scanf( "%d", &col );
for( i = 0 ; i < 26 ; i++ ){
if( i > 0 && ( i % col ) == 0 )
printf( "\n" );
printf( "%c", 'a' + i );
}
return 0;
}
以上のプログラムをgccでコンパイルしました。
コンパイルするために入力した文字→ gcc p.c -o p.exe
以下のエラーがでてコンパイルできません。
p.c: In function `main':
p.c:4: error: `Int' undeclared (first use in this function)
p.c:4: error: (Each undeclared identifier is reported only once
p.c:4: error: for each function it appears in.)
p.c:4: error: syntax error before "col"
p.c:7: error: `col' undeclared (first use in this function)
p.c:17:2: warning: no newline at end of file
以上なぜコンパイルができないのですか?
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
そんな難しい英語でもないのですから、読みましょうよ。
>p.c: In function `main':
>p.c:4: error: `Int' undeclared (first use in this function)
>p.c:4: error: syntax error before "col"
main関数内、ソースファイルの4行目に"Int"という宣言されていないのものがある。
上記のエラーにより"col"が文法エラー。
>p.c:7: error: `col' undeclared (first use in this function)
ソースファイルの7行目に"col"という宣言されていないものがある。
Intじゃなくて、intじゃありませんか?
大文字・小文字は区別しますが…。
どこかで
#define Int int
とか、
typedef Int int;
とかしていない限りはエラーでしょう。
皆様ご回答誠にありがとうございました。
4行目エラーと出ていたのに、丸投げ質問をしてしまいました。
ご指摘通りIntをintに変えたらOK^^でした。
今度からちゃんと見て質問します。
No.7
- 回答日時:
i を char にする理由は, はっきり言って思いつきません>#6.
全く思いつかないわけじゃないんだけど,
「とんでもなくスタックがひっ迫していて char じゃないとそもそも動かない」
という状況しか出てこない. そして, スタックアラインメントの関係でそのような状況は (完全に否定できないものの) おそらく非常に作りにくい.
いずれにしても
・int 以下の型の値は何かするたびに int に自動的に変換される
・printf の 2つ目以降の引数は可変長引数の ... の部分だから int に自動的に変換される
・そもそも C において 'a' の型は int
なので, i を int にできるなら int の方がはるかに普通.
No.6
- 回答日時:
たびたび、フォロー(ツッコミ)ありがとうございます>#5
わりとどうしようもない間違いかますことが……
ループ変数にcharは…確かに普通は見ませんね…。
>printf( "%c", 'a' + i );
でcharにした…んでしょうか……。intでも問題ありませんけど……。
No.5
- 回答日時:
ど~でもいいですが, typedef なら
typedef int Int;
でしょう>#1.
しかし, ループ変数を char にするってのも珍しいスタイルだなぁ....
No.4
- 回答日時:
すでに回答が出ているように、intと書くべきところにIntと書いてしまっているからです。
Cでは、大文字と小文字は厳密に区別します。
もし、曖昧に扱う癖がついているのなら、早い段階で矯正しましょう。
あと、最後の警告については下記の理由かと思います。
http://www.kijineko.co.jp/tech/superstitions/las …
No.2
- 回答日時:
この先お世話になるエラーメッセージです。
人に頼らずに読めるようになりましょう。> p.c:4: error: `Int' undeclared (first use in this function)
よく出会うエラーです。
undeclared : 宣言されていない。
ということで、宣言されていない変数や関数を使おうとするときに発生します。
主な原因は
・必要なヘッダを#includeしていない
・宣言と使用箇所の順番違う
・只の入力間違い
です。
何を使おうとしたのが問題なのか、というのは Int だと言っています。
ここまででわかったのではないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
- その他(プログラミング・Web制作) cryptcatのビルド 4 2022/07/21 14:55
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- PHP php エラー 2 2022/10/23 16:43
- その他(SNS・コミュニケーションサービス) 爆サイやっていたら、下のような文字が出ました! これは何なのでしょうか? nginx error! 1 2023/06/09 12:27
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAを何回も作り直して、容量が...
-
Makefile作成時の拡張子.oとは?
-
「fatal error C1189」を回避す...
-
クリティカルエラー Expressio...
-
エクセルVBAではRound...
-
不要な #include
-
CImageクラスの使用について
-
「猫でもわかるプログラミング...
-
C言語でヘッダファイルにグロー...
-
たくさんのVBPを一括コンパイル...
-
C言語でMIDIを鳴らしたいです。
-
外部シンボル "_main"は未解決です
-
<math.h>があるのにsqrtが・...
-
[c++] <pthread.h>がinclude で...
-
VB6で開発中…標準モジュール間...
-
ビルドから除外されたソースの...
-
ExcelVBAで『ByRef 引数の型が...
-
RPGでプログラムからソースファ...
-
C言語でmからnまでの合計を求め...
-
MO, PO, POT, ファイルの開き方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAを何回も作り直して、容量が...
-
<math.h>があるのにsqrtが・...
-
Makefile作成時の拡張子.oとは?
-
C言語でヘッダファイルにグロー...
-
エクセルVBAではRound...
-
1 つ以上の複数回定義されてい...
-
「fatal error C1189」を回避す...
-
ILSpyで、デコンパイルできない。
-
” OS ビルド ” の意味が分か...
-
外部シンボル "_main"は未解決です
-
セミコロンについて
-
C++コンパイル時に『 C1083: in...
-
マクロ コンパイルがグレーバック
-
[c++] <pthread.h>がinclude で...
-
コンパイルエラー:ユーザ定義...
-
ビルドとリビルドの違いを教え...
-
クリティカルエラー Expressio...
-
sys/types.hの必要性について
-
【VC++6.0(MFC)】警告「LINK : ...
-
PRO*C コンパイルエラー
おすすめ情報