質問です、コンパイルがうまくいきません

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
flashmanbou
記事: 1
登録日時: 7年前
住所: 福岡

質問です、コンパイルがうまくいきません

#1

投稿記事 by flashmanbou » 7年前

学習用C言語開発環境 というソフトを使っています。
9行目でidentifierを付け忘れています とエラーが出ます。
調べてみてもよくわかりません。お願いします。

codeタグをお使いください。 by softya(ソフト屋)

コード:

#include <stdio.h>
int main(int argc, const char * argv[]) {
	int a;
	
	printf("オリンピックが開催される/された年か知りたい西暦年を入力してください\n");
	scanf("%d",&a);
	
	if ((a<1896)||(a==1940,1944,1916)) {printf("オリンピックは実施されていません");}
	else if ((a>=1896)&&(a=<1924)) { if (a%4==0){printf("夏季オリンピックと冬季オリンピックが実施されました");}
	}
	
	
	else if { if (a%4==2) {printf("冬季オリンピックが実施されました");}
	                               else if (a%4==0){printf("夏季オリンピックが実施されました");}
	                               else{printf("オリンピックは実施されていません");}
	}
	return 0;
}

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 質問です、コンパイルがうまくいきません

#2

投稿記事 by softya(ソフト屋) » 7年前

とんでもなくインデント(字下げ)が不正確で可読性に問題がありますね。その性でバグを作っても気づかないでいるようです。
まず、そこを直しましょう。

if() { ←ここで必ず改行。次の行は1TAB下げる。

こんな感じです。

コード:

	if ( ( a < 1896 ) || ( a == 1940, 1944, 1916 ) ) {
		printf( "オリンピックは実施されていません" );
	} else if ( ( a >= 1896 ) && ( a = < 1924 ) ) {
あと文法的にも問題があるのですが、混乱すると思うのでインデントを直したあとにしましょう。

上にも書きましたがcodeタグをお忘れなく。 http://dixq.net/board/board.html#k10
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
tana
記事: 33
登録日時: 9年前

Re: 質問です、コンパイルがうまくいきません

#3

投稿記事 by tana » 7年前

コード:

if ((a<1896)||(a==1940,1944,1916)) 
これって

コード:

if ((a<1896)||(a==1940)||(a==1944)||(a==1916)) 
こうではないのですか?

box
記事: 1746
登録日時: 9年前

Re: 質問です、コンパイルがうまくいきません

#4

投稿記事 by box » 7年前

仮に、if文とか≦演算子とかの間違いをなくしてコンパイルが通ったとして、
flashmanbou さんが書きました:

コード:

	else if ((a>=1896)&&(a=<1924)) { if (a%4==0){printf("夏季オリンピックと冬季オリンピックが実施されました");}
1924っていうのは正しくないような気がします。
ミュンヘンオリンピックがあった1972年には、札幌で冬季オリンピックを開催したはず、等々。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

閉鎖

“C言語何でも質問掲示板” へ戻る