自分でプログラムを打ち、コンパイルしてみたんですけど
「c:10:警告:incompatible implicit declaration of built-in function 'printf'」とエラーが出てきました。
自分なりに10行目[ printf("%d :",b[i]); ]をいじってみたりは
したのですが、上手くいきません。
いったいドコがおかしいのでしょうか?
ご指導よろしくお願いします<(_ _)>
↓コレがそのプログラムです。
***************
int main(void){
int score[3][4];
int i,j,sum[3]={0};
score[0][0]=70; score[0][1]=80; score[0][2]=75; score[0][3]=60;
score[1][0]=75; score[1][1]=83; score[1][2]=70; score[1][3]=70;
score[2][0]=60; score[2][1]=76; score[2][2]=70; score[2][3]=55;
char b[]="ABC";
for(i=0; i<3; i++){
printf("%d :",b[i]);
for(j=0; j<4; j++){
printf("%3d",score[i][j]);
sum[i]+=score[i][j];}
printf(" : sum=%d, ave=%5.2f\n",sum[i],(float)sum[i]/4);
}
return 0;
}
No.1ベストアンサー
- 回答日時:
printf("%d :",b[i]);
%dは整数を表示するときに用いるものです。
この場合は文字を出力したいのですから、%cとすべきでしょう。
この%d、%c、%fなどは、書式制御文字列と呼ばれ、変数の中身をどのような形式で表示するかをコントロールするものです。
「書式制御文字列」で検索すれば、詳しい使い方が見つかると思いますよ。
早速お返事ありがとうざいました<(_ _)>
確かにココはおかしいですよね、自分でもアホだなぁと思い早速
直してみたんですが、エラーが消えません。
何か他に問題があるのかな…?
また少し考えて見ます。
No.4
- 回答日時:
C言語で関数を使うときには、同じファイルで、
関数をコールしている箇所より前(上)に関数の本体か、
関数のプロトタイプなければいけません。
同じファイルでも呼び出すところよりしたに関数がある場合は、
呼び出し箇所しょり前にプロタイプが必要です。
さて、エラーの意味ですが、関数printfの実体も、プロトタイプもないに
いきなり使われいます。コンパイラはどこかにあるものとして処理を
しました。という「警告 (worning)」です。
通常、他のファイル呼ばれる関数のプロトタイプは、ヘッダファイル
(.h)に聞きます。
別のファイルにある関数を呼び出す側では、そのヘッダファイルを
インクルードします(#inckude)
関数 printf() は stdio.h に記述されいるので、
No3.の方のように書くと、警告表示が消えます。
No.3
- 回答日時:
2の方が、答えをそのまま書いていらっしゃいます。
下記の様に変更して下さい。
↓コレがそのプログラムです。
***************
#include <stdio.h>
int main(void){
(以下、省略)
参考URL:http://www.cmagazine.jp/src/kinjite/c/oldstyle.h …
No.2
- 回答日時:
> 「c:10:警告:incompatible implicit declaration of built-in function 'printf'」とエラーが出てきました。
この警告はgccですね。
直接の原因は<stdio.h>がインクルードされていないところにあります。
printfのような可変個引数を伴う関数を関数原型なしで呼び出した場合の動作は未定義です。
他には、既に回答が出ているように、書式指定と実引数が矛盾している問題があります。
はぃ、gccつかってやってます。
まだC言語を始めたばかり(しかも独学)なので
少し説明を理解するのに時間がかかりましたが
なんとなく意味はつかめました。
しかし、どうすればそれが改善するのか…。
No.1さんの指摘は明らかに私の間違いでしたが
エラーとは関係がなかったみたいです。
何がおかしいのかもう少し、考えて見ます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- その他(プログラミング・Web制作) python コードについて(初学者です) 3 2023/07/20 14:44
- C言語・C++・C# C言語 3 2022/11/09 13:27
- 英語 score(スコア)は20、という意味もある three score years and ten.( 3 2022/12/17 23:53
- 英語 score (20)という意味で リンカーンの演説では four score and seven y 2 2022/12/21 23:20
- 英語 Purpose: This study analyzed procedural results as 3 2022/11/17 21:03
- 日本語 こんばんは。 How can I say in japanese that I have got t 4 2022/05/15 14:24
- C言語・C++・C# C言語: ポインタ 5 2022/06/01 08:33
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミングについて質問で...
-
10個出力で改行したいのですが...
-
三角形の判別
-
改行について 1行に何個かづ...
-
【C言語教えてください】sin波...
-
printf で二進表示を行いたい。
-
2進数の加算の繰り上がり
-
入力したお金の金額からお札の...
-
int型 00 を表示するのに0とな...
-
プログラム(C言語)
-
掃出法で連立一次方程式の解を...
-
Visual Sutdio 2017 でのC言語...
-
cshの文字列操作(0埋め)
-
strcmp
-
scanfに文字が入力されたときに...
-
現在時刻の表示について
-
C言語 じゃんけんゲーム 非常...
-
コマンドラインに出力した文字...
-
WM_CLOSEで閉じれないウィンド...
-
2つ分数の四則演算を行うプロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
【C言語教えてください】sin波...
-
printf で二進表示を行いたい。
-
c言語でAからZまでを表示する...
-
コマンドラインに出力した文字...
-
strcmp
-
4の倍数を論理演算で表す。。
-
scanfに文字が入力されたときに...
-
C言語での、年複利の計算方法...
-
C言語 プログラミング
-
hit&bolwのプログラミングがで...
-
%P と %X の違い
-
unsigned int型について
-
printf( " %2d", p * q );
-
cshの文字列操作(0埋め)
-
改行について 1行に何個かづ...
-
8人分のテストの点数を入力し、...
-
入力したお金の金額からお札の...
-
三角形の判別
-
テキストカーソル位置の取得
おすすめ情報