• 締切済み

C言語

int no; int "n12,n8,n9,max"; などでビルドをすると;が型の前にありませんとエラーが出るんですが型とはどこのことを言ってるんでしょうか? それでわからなくて ;int; ;no; ;int; ;";n12;,;n8;,;n9;,;max;"; 全箇所に;を付けても;が型の前にありませんとエラーになります 教えて下さい。お願いします

みんなの回答

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.5

★次の手直ししたソースをコピー&ペーストしてコンパイル! #include <stdio.h> int main( void ) { int n1, n2, n3, max; puts( "三つの整数を入力してください。" ); printf( "整数1:"); scanf( "%d", &n1 ); printf( "整数2:"); scanf( "%d", &n2 ); printf( "整数3:"); scanf( "%d", &n3 ); max = n1; if ( n2 > max ) max = n2; if ( n3 > max ) max = n3; printf( "最大値は%dです。\n", max ); return( 0 ); }

noname#77845
noname#77845
回答No.4

#1です。 1行目 半角スペースを挿入 #include <stdio.h> 3行目 全角→半角に変更 { 6~8行目 前半;後半の間に「;」を挿入 printf("整数1;");scanf("%d",&n1); printf("整数2;");scanf("%d",&n2); printf("整数3;");scanf("%d",&n3); 12行目 「\」→「\」(半角)へ変更 printf("最大値は%dです。\n",max); 14行目 全角→半角に変更 } で、どうでしょう? 通常の式を記述するときに、「全角文字」は使用してはいけません。 「"」で囲まれた中だけにしましょう。 また、「\n」等は特殊な記号なので必ず「半角」で記述しましょう。

zins
質問者

補足

printf("整数1;");scanf("%d",&n1); printf("整数2;");scanf("%d",&n2); printf("整数3;");scanf("%d",&n3); でビルドすると n1、n2,n3 定義されていない職別子ですとエラーになり printf("最大値は%dです。\n",max); max 定義されていない職別子ですとエラーになります

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.3

★C言語のテキスト本を持っていますか? ・持っていないのならば、1冊は用意した方が良いでしょう。  堅苦しい文法の本を辞書代わりに用意します。 ・ダブルクォーテーションは文字列を表現するときに使います。 >int "n12,n8,n9,max";  これ文字列で表現するなら『char *str = "n12,n8,n9,max";』と表現できますが、  やっぱ普通に整数型を宣言したいのですよね。それならば、ダブルクォーテーションは  つけてはダメです。  間違い⇒int "n12,n8,n9,max";  正しい⇒int n12,n8,n9,max; ・また、セミコロンは式や、関数の呼び出しの後に付けます。  全箇所に『;』文字を付けるとエラーのオンパレードですよ。 ・あとエラーメッセージの >ビルドをすると;が型の前にありませんとエラーが出る  これは『int』と『"n12,n8,n9,max";』の間に『;』セミコロンがないというエラーです。  C言語では文字列を1つの『式』として評価しますので、コンパイラの解釈としては  『int 変数名;』の次に文字列の『"n12,n8,n9,max";』が来たため、その間に『;』文字が  ないとエラー報告したのです。→もうちょっと人間に分かりやすいエラー表示をしてくれると  助かりますがね。例えば『変数名の宣言にダブルクォーテーション文字は付けません。』なら  分かりやすいのに。 ・以上。参考に!

zins
質問者

補足

int n12,n8,n9,max; でやっても;が型の前にありませんとエラーになります 本通りにやってるのですが 本は #include<stdio.h> int main(void) { int n1,n2,n3,max; puts("三つの整数を入力してください。"); printf("整数1;") scanf("%d",&n1); printf("整数2;") scanf("%d",&n2); printf("整数3;") scanf("%d",&n3); max=n1; if(n2>max) max=n2; if(n3>max) max=n3; printf("最大値は%dです。\n",max); return(0); } でビルドするとほとんどエラーになるので自分なりに試して #include<stdio.h> int main(void) { "int n1,n2,n3,max"; puts("三つの整数を入力してください。"); printf("整数1;") scanf("%d",&n1); printf("整数2;") scanf("%d",&n2); printf("整数3;") scanf("%d",&n3); "max=n3"; "if(n2>max) max==n2"; "if(n3>max) max==n3"; printf("最大値は%dです。\n,max"); return(0); } でビルドすると上手くいくのですが デバックなしで開始すると 三つの整数を入力してください。 整数1;n1 続行するには何かキーを押して下さいとなり この先にいけないのですが何がいけないのでしょうか? 完成型は 三つの整数を入力してください。 整数1;n1 整数2;n2 整数3;n3 最大値はn3です という形にしたいのです

  • fuchihiro
  • ベストアンサー率25% (35/140)
回答No.2

""だと文字列リテラルになります。なので使うとすれば、ポインタか配列で代入するしかないです。intは数値の宣言ですよ。

noname#77845
noname#77845
回答No.1

int "n12,n8,n9,max"; × int n12,n8,n9,max;  ○

関連するQ&A