リンカエラー2001 1120について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
おすし
記事: 6
登録日時: 3ヶ月前

リンカエラー2001 1120について

#1

投稿記事 by おすし » 3週間前

c++で素因数分解をするプログラムを作っているのですが実行しようとすると下のようなエラーが出てきてしまいます。どうやったら解決できますか?
ご教授お願いします。

LNK2001 外部シンボル ""int * sosuu" (?sosuu@@3PAHA)" は未解決です。
LNK2001 外部シンボル ""int * yakusuu" (?yakusuu@@3PAHA)" は未解決です。
LNK1120 2 件の未解決の外部参照

コード:

#include <iostream>

using namespace std;
int suuzi;
int a,c, i;
int sosuu[];
int Tekitou;
int yakusuu[];
int kaisuu = 0;

int main()
{
	cout << "数字を入れてください           ";
	cin >> suuzi;

	for (a = 0; a < 8;a++)
	{

		for (i = 1; suuzi % i != 0; i++)
		{
			suuzi = suuzi / i;

			sosuu[a] = i;
		}
		suuzi++;
		sosuu[a]++;

		int c;
		        

		for (c = 1; c <= suuzi; c++)
		{
			if (suuzi % c == 0)
			{
				kaisuu++;
				yakusuu[kaisuu] = c;
			}
		}
		while (1)
		{
			for (int d = 0; d <= kaisuu; d++)
			{
				if (suuzi / yakusuu[d] == 0 && yakusuu[d] != 1 && yakusuu[d] != suuzi) break;
			}
			goto end;
		}
	}
	end:
	cout << "suuzi = ";
	for (int b = 0; b <= a; b++)
	{
		cout << sosuu[b] << "×";
	}
	cout << "適当なキーを打って終了し/ます";
	cin >> Tekitou;
}

かずま

Re: リンカエラー2001 1120について

#2

投稿記事 by かずま » 3週間前

おすし さんが書きました:
3週間前
c++で素因数分解をするプログラムを作っているのですが実行しようとすると下のようなエラーが出てきてしまいます。どうやったら解決できますか?
配列を宣言するときは、サイズを指定しましょう。

コード:

#include <iostream>
using namespace std;

int main()
{
	int suuzi = 120, sosuu[32], a = 2, i = 0;

	do {
		if (suuzi % a == 0)
			suuzi /= sosuu[i++] = a;
		else
			a++;
	} while (suuzi > 1);
	cout << "suuzi = " << sosuu[0];
	for (int b = 1; b < a; b++)
		cout << " x " << sosuu[b];
	cin >> a;
}
これは、参考となるプログラムで、本当は suuzi を入力させたり、
suuzi が 1 の場合の処理の追加が必要です。

かずま

Re: リンカエラー2001 1120について

#3

投稿記事 by かずま » 3週間前

かずま さんが書きました:
3週間前

コード:

	for (int b = 1; b < a; b++)
a を i に訂正します。

コード:

	for (int b = 1; b < i; b++)

おすし
記事: 6
登録日時: 3ヶ月前

Re: リンカエラー2001 1120について

#4

投稿記事 by おすし » 6日前

返信ありがとうございます。
教えてもらった通りに修正したら、コンパイルは通ったのですが実行すると、
if (suuzi / yakusuu[d] == 0 && yakusuu[d] != 1 && yakusuu[d] != suuzi) break;のところで『ハンドルされていない例外が発生しました。』というメッセージが出てしまいました。
これはどういう意味なんですかね。。。?

かずま

Re: リンカエラー2001 1120について

#5

投稿記事 by かずま » 6日前

おすし さんが書きました:
6日前
教えてもらった通りに修正したら、コンパイルは通ったのですが
どのように修正したのか、こちらから見えません。
コンパイルが通ったプログラム全体を見せてください。
おすし さんが書きました:
6日前
実行すると、
if (suuzi / yakusuu[d] == 0 && yakusuu[d] != 1 && yakusuu[d] != suuzi) break;のところで『ハンドルされていない例外が発生しました。』というメッセージが出てしまいました。
yakusuu[d] が 0 だったんだと思います。
そのメッセージが出た時の「入力データ」を書いてください。

返信

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