大学の講義でC言語を習い始めたのですが、if文でコンパイルするとどうしても解決できないエラーが起こってしまいます。
文の意味は
「4で割り切れる年は”閏年”また、400でも割り切れる年も”閏年”と表示する。100で割り切れる年は”平年”と表示する」
というものです。値は2100で指定しています。
#include <stdio.h>
main() {
int y;
printf(" y=2100; ");
{ if(y%400:0) {
printf("a leap year \n"); {/* 閏年 */}
} else if(y%100:0) {
printf("a common year \n"); {/* 平年 */}
} else if(y%40:0) {
printf("a leap year \n"); {/* 閏年 */}
} else {
printf("a common year \n"); {/* 平年 */}
}
}
return 0;
}
これをコンパイルすると、どうしても
「エラー E2377 ”ファイル名” 5: If文に ) がない(関数 main)」
と出てきてしまいます。
残るこのエラーだけが解決できません。どなたか、間違っている点がわかる方はいませんでしょうか。お願いします。
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.7
- 回答日時:
とりあえず、C言語の文法の勉強しましょう。
。。入力制限多いですが、せっかく作ったので、ぺたぺた。
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <limits.h>
int main( int argc, char* argv[] )
{
int y = 0;
char input[12];
char* error;
do{
error = NULL;
printf( "年を9桁以内の数値で入力してください(それ以上は左から自動的に切り捨てられます)\n=>" );
scanf( "%9s%*[^\n]%*c", input );
y = strtol( input, &error, 10 );
if ( *error != '\0' )
{
printf( "%s以降は無視されます\n", error );
}
}while( y == 0 || y < 0 );
if ( ((y % 4) == 0) && ((y % 100) != 0) || ((y % 400) == 0))
{
printf("閏年\n", y);
}
else
{
printf("平年\n", y );
}
return 0;
}
入力チェックの方が長い。。。
No.6
- 回答日時:
検査する年が2100限定と言うのもすごい設定ですが、出力は「日本語」なんですよね。
-- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< --
#include <stdio.h>
#include <stdlib.h>
#define NBUF 80
int
main()
{
int y;
char buf[NBUF];
while (1) {
printf("\n年を入力してください: ");
if (fgets(buf, NBUF, stdin) == 0) {
break;
}
y = atoi(buf);
if ((y % 400) == 0) {
printf("閏年\n");
}
else if ((y % 100) == 0) {
printf("平年\n");
}
else if ((y % 4) == 0) {
printf("閏年\n");
}
else {
printf("平年\n");
}
}
return 0;
}
No.5
- 回答日時:
直接的には、例えば、「400で割り切れる」という判断を記述するのが、
y % 400 == 0 であって、 y % 400 : 0 ではないということです。
あと、最初の、printf("y = 2100;");
は、単に、表示させてみようとしたのかな? とは思いますが、これでは、 y には値は設定されません。
y = 2100; ですね。
また、コメントは、{ } で挟む必要はありません。
今回の場合、たまたま影響はありませんが。
ということで、if () の中をそれぞれ、
y % 400 == 0
という形に直し、y を設定できるようにすれば、とりあえず、動くでしょう。
また、明らかに、 if (y%400:0) というような記述で、「)」が足りないというエラーが出るのは、Cに特有でもあります。
コンパイラは、 if (y %400 の次を見て、: を見つけるわけですが、ここに、: が来るような構文はありません。
そこで、「これは、: の前に、) を忘れたのだろう。本当は、 if(y%400) : と書きたかったのだろう(これでも、記述としては間違っていますが)と勝手に解釈したのですね。
ですから、エラーの内容が、「)が足りません。」だったわけです。
No.4
- 回答日時:
#include <stdio.h>
void main() {
int y;
y = 2100;
if (((y % 4) == 0) || ((y % 400) == 0))) {
printf("a leap year\n");
} else {
printf("a common year\n");
}
}
これでいけると思いますけど・・・
No.3
- 回答日時:
No.2
- 回答日時:
完全に間違っています。
少し修正してコンパイルがたとえ通っても根本が違っているので計算はうまくいきません。
C言語の基本的な書き方が理解できていませんので、このサイトの少なくとも8番までの練習問題をクリアできるようになりましょう!
http://homepage3.nifty.com/mmgames/c_guide/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# プログラムの時、フローチャートはどうなりますか?図でお願いします。 int main(void) { 1 2022/10/01 22:45
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# プログラミングのペーパーテスト 実行結果がどのように表示されるか答えよ #include <stdi 1 2022/07/09 14:27
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# プログラミングのペーパーテスト 実行結果を表示せよ #include <stdio.h> int h 1 2022/07/09 15:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
printf で二進表示を行いたい。
-
10個出力で改行したいのですが...
-
コマンドラインに出力した文字...
-
ブラックジャック
-
C言語で、「自然数nを入力し、n...
-
error C2143: 構文エラー : ';'...
-
scanfに文字が入力されたときに...
-
4の倍数を論理演算で表す。。
-
縦の棒グラフ
-
パスカルの三角形についてのCプ...
-
(C言語)めちゃくちゃな値にな...
-
ピラミッド表示プログラム。
-
C言語 ツェラーの公式を使った...
-
CTRL+Dでループを抜けるには
-
勝率をプログラムに
-
Visual Sutdio 2017 でのC言語...
-
%P と %X の違い
-
printf( " %2d", p * q );
-
C言語 プログラミング ごめんな...
-
printf()文の書式
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
既約分数の表示プログラム
-
printf で二進表示を行いたい。
-
8人分のテストの点数を入力し、...
-
printf( " %2d", p * q );
-
strcmp
-
CTRL+Dでループを抜けるには
-
4の倍数を論理演算で表す。。
-
%P と %X の違い
-
【C言語教えてください】sin波...
-
c言語でAからZまでを表示する...
-
cshの文字列操作(0埋め)
-
万年カレンダーのC言語プログラ...
-
コマンドラインに出力した文字...
-
scanfに文字が入力されたときに...
-
コンパイルエラーについて
-
ホームページをC言語で作りたい...
-
改行について 1行に何個かづ...
-
台形の面積を求めるプログラム
-
なぜgccはstdio.hをインクルー...
おすすめ情報