エラーの理由を教えてください

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ぬここ

エラーの理由を教えてください

#1

投稿記事 by ぬここ » 6年前

初心者です
エラーの理由がわかりません
誰か教えてください

    int a, b, max, min;

puts("二つの整数を入力してください");
printf("整数1:"); scanf_s("%d", &a);
printf("整数2:"); scanf_s("%d", &b);
if (a > b) {
max = a; min = b;
}
else if (b > a) {
max = a; min = b;
}
else
printf("%d以上%d以下の全整数の和は%dです", a, b, a);

return 0;

エラー 3 error C2146: 構文エラー : ')' が、識別子 'a' の前に必要です
エラー 4 error C2059: 構文エラー : ')'
エラー 2 error C2181: else 文が if と一致しません。
エラー 1 error C2181: else 文が if と一致しません。

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

Re: エラーの理由を教えてください

#2

投稿記事 by box » 6年前

とりあえず、お手元のソースコードを全部貼ってください。
部分的に見せられても、困ります。

なお、
ぬここ さんが書きました:

コード:

		printf("%d以上%d以下の全整数の和は%dです", a, b, a);
この文で行なっていることは、どう考えてもおかしいです。
作成途中ですか?
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

ぬここ

Re: エラーの理由を教えてください

#3

投稿記事 by ぬここ » 6年前

作成途中です
それとコードを普通に打ち込んでしまってすいません
使っているのはvs express 2013 for desktopです

ぬここ

Re: エラーの理由を教えてください

#4

投稿記事 by ぬここ » 6年前

コード:

// ConsoleApplication5.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
	int a, b, max, min;

	puts("二つの整数を入力してください");
	printf("整数1:"); scanf_s("%d", &a);
	printf("整数2:"); scanf_s("%d", &b);
	if (a > b) {
		max = a; min = b;
	}
	else if (b > a) {
		max = b; min = a;
	}
	else
		printf("%d以上%d以下の全整数の和は%dです", a, b, a);

	do{

	}

	return 0;
} 
ほんと初心者でごめんなさい

ぬここ

Re: エラーの理由を教えてください

#5

投稿記事 by ぬここ » 6年前

エラー 3 error C2146: 構文エラー : ')' が、識別子 'a' の前に必要です 22行
エラー 4 error C2059: 構文エラー : ')'  22行
エラー 2 error C2181: else 文が if と一致しません。 21行
エラー 1 error C2181: else 文が if と一致しません。 18行

アバター
みけCAT
記事: 6311
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: エラーの理由を教えてください

#6

投稿記事 by みけCAT » 6年前

少しコンパイルを通すための補正をしてWandboxで試したのですが、
doのブロックの後にwhileが無い、というエラーしか出ませんでした。
オフトピック
厳密には、未宣言の関数を使っているというエラーも出ました。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

ぬここ

Re: エラーの理由を教えてください

#7

投稿記事 by ぬここ » 6年前

コード:

// ConsoleApplication5.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
	int a, b, max, min;
	int c = 0;

	puts("二つの整数を入力してください");
	printf("整数1:"); scanf_s("%d", &a);
	printf("整数2:"); scanf_s("%d", &b);

	if (a > b) {
		max = a; min = b;
	}
	else if (b > a) 
	{max = b; min = a;}
	else
		printf("%d以上%d以下の全整数の和は%dです", a, b, a);

	printf("$d以上%d以下の全整数の和は", min, max);
	do{
		c = c + max;
		max = max - 1;
	} while (max != min);
	printf("%dです", c);

	return 0;
}

完成しましたがやっぱりできませんでした

ぬここ

Re: エラーの理由を教えてください

#8

投稿記事 by ぬここ » 6年前

コンパイラがおかしいんでしょうか?
もしそうならばトピックの趣旨とは異なりますがおすすめのコンパイラを教えてください

アバター
みけCAT
記事: 6311
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: エラーの理由を教えてください

#9

投稿記事 by みけCAT » 6年前

補正すればコンパイルは通りますね。
http://melpon.org/wandbox/permlink/ugxcWit6jCPsMdFO

自分が使っているコンパイラは、Dev-C++付属のgcc(MinGW) 4.8.1です。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

pg78445
記事: 10
登録日時: 7年前

Re: エラーの理由を教えてください

#10

投稿記事 by pg78445 » 6年前

自分のところのvs express 2013 for desktopではコンパイル通りました。
(24行目は恐らく$dではなく%dだと思いますが)

今、どんなエラーが発生していますか?

ぬここ

Re: エラーの理由を教えてください

#11

投稿記事 by ぬここ » 6年前

[quote="ぬここ" id=3,14924,118579]エラー 3 error C2146: 構文エラー : ')' が、識別子 'a' の前に必要です 
エラー 4 error C2059: 構文エラー : ')'
エラー 2 error C2181: else 文が if と一致しません。
エラー 1 error C2181: else 文が if と一致しません。

今も変わりません
それと行数は違いましたので消しておきます
他に思い当たる原因は猫がキーボードを踏んだときに設定が変わったかもしれません

pg78445
記事: 10
登録日時: 7年前

Re: エラーの理由を教えてください

#12

投稿記事 by pg78445 » 6年前

少しいじってみましたがエラーを再現することはできませんでした。
もう一度プロジェクトを作り直した方が早いかもしれません。

ぬここ

Re: エラーの理由を教えてください

#13

投稿記事 by ぬここ » 6年前

今日もう一回やり直したらできました
みなさんありがとうございました

閉鎖

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