ページ 11

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

Posted: 2014年4月08日(火) 23:09
by ぬここ
初心者です
エラーの理由がわかりません
誰か教えてください

    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 と一致しません。

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

Posted: 2014年4月08日(火) 23:15
by box
とりあえず、お手元のソースコードを全部貼ってください。
部分的に見せられても、困ります。

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

コード:

		printf("%d以上%d以下の全整数の和は%dです", a, b, a);
この文で行なっていることは、どう考えてもおかしいです。
作成途中ですか?

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

Posted: 2014年4月08日(火) 23:19
by ぬここ
作成途中です
それとコードを普通に打ち込んでしまってすいません
使っているのはvs express 2013 for desktopです

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

Posted: 2014年4月08日(火) 23:21
by ぬここ

コード:

// 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: エラーの理由を教えてください

Posted: 2014年4月08日(火) 23:28
by ぬここ
エラー 3 error C2146: 構文エラー : ')' が、識別子 'a' の前に必要です 22行
エラー 4 error C2059: 構文エラー : ')'  22行
エラー 2 error C2181: else 文が if と一致しません。 21行
エラー 1 error C2181: else 文が if と一致しません。 18行

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

Posted: 2014年4月08日(火) 23:35
by みけCAT
少しコンパイルを通すための補正をしてWandboxで試したのですが、
doのブロックの後にwhileが無い、というエラーしか出ませんでした。
オフトピック
厳密には、未宣言の関数を使っているというエラーも出ました。

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

Posted: 2014年4月08日(火) 23:41
by ぬここ

コード:

// 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: エラーの理由を教えてください

Posted: 2014年4月08日(火) 23:49
by ぬここ
コンパイラがおかしいんでしょうか?
もしそうならばトピックの趣旨とは異なりますがおすすめのコンパイラを教えてください

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

Posted: 2014年4月09日(水) 00:15
by みけCAT
補正すればコンパイルは通りますね。
http://melpon.org/wandbox/permlink/ugxcWit6jCPsMdFO

自分が使っているコンパイラは、Dev-C++付属のgcc(MinGW) 4.8.1です。

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

Posted: 2014年4月09日(水) 00:23
by pg78445
自分のところのvs express 2013 for desktopではコンパイル通りました。
(24行目は恐らく$dではなく%dだと思いますが)

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

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

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

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

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

Posted: 2014年4月09日(水) 00:53
by pg78445
少しいじってみましたがエラーを再現することはできませんでした。
もう一度プロジェクトを作り直した方が早いかもしれません。

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

Posted: 2014年4月09日(水) 22:45
by ぬここ
今日もう一回やり直したらできました
みなさんありがとうございました