2012-02-20 40 views
1

2つの異なるデータ型を持つ2次元配列をC言語で宣言したいと考えています。最初の列と行は文字でなければならず、それらは同じであり、他の要素は整数でなければなりません。次に、最初の列と行に基づいて要素の値を設定します。例えば:AおよびDは、私のプログラム内の別の関数の値に戻され、Iがindecesが配列Aにあるかわからないので、私は、[0] [3] 4 =使用できないC言語の2次元配列

A B C D 
A 1 2 3 4 
B 4 3 2 1  a[A][D] = 4 
C 9 8 7 6 
D 6 7 8 9 

。最初の行に別の配列を使用してインデックスを検索すると、時間がかかり、プログラムのパフォーマンスが悪くなります。

+3

あなたに数値を代入するためにenumを使用しないでください。 –

+2

ヒント: 'char'は実際には数値型です。 'int 'にキャストすることができます –

+0

どうすれば使用できますか?例を挙げて説明できますか?ありがとう。 –

答えて

2

Cでは、2次元またはそれ以外の配列を宣言することはできません。そのため、配列の一部がある型で、一部が別の型になるように宣言することはできません。不正行為をしやすく、配列全体に2つのデータ型のうち大きい方を使用して、束全体をキャストすることは可能ですが、はエラーが発生しやすく、タイプCの錯覚には安全性があります。

最初の行に別の配列を使用してインデックスを検索すると、時間がかかりすぎてプログラムのパフォーマンスが悪くなります。

正しい解決策を最初に作成し、正しい解決策が十分に速くない場合は最適化してください。そのような解決策がある場合は、投稿してください。そうでない場合は、それを書き、次にそれが十分に速くない場合は、それを最適化する方法について別の質問をしてください。