2012-02-20 10 views
1

C 언어로 두 가지 다른 데이터 형식을 가진 2 차원 배열을 선언하고 싶습니다. 첫 번째 열과 행은 문자 여야하며 동일해야하며 다른 요소는 정수 여야합니다. 그런 다음 첫 번째 열과 행을 기준으로 요소의 값을 설정하려고합니다. 예를 들어 :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 

나는 A와 D가 내 프로그램에서 다른 함수의 값을 반환되기 때문에 [0] [3] = 4, 내가 거기에 굴절률들 배열 A의 무엇인지 모르는 사용할 수 없습니다 . 첫 번째 행에 다른 배열을 사용하여 인덱스를 검색하면 너무 많은 시간이 걸리고 내 프로그램의 성능에는 좋지 않습니다.

+3

U U B C D에 숫자 값을 할당하려면 열거 형을 사용하지 마십시오. –

+2

힌트 :'char'는 실제로는 숫자 형입니다. 그것은'int'로 변환 될 수 있습니다 –

+0

어떻게 사용할 수 있습니까? 예를 들어 설명해 주시겠습니까? 감사. –

답변

2

C에서는 배열의 일부분이 한 유형이고 다른 일부는 다른 유형이되도록 2 차원 또는 다른 방법으로 배열을 선언 할 수 없습니다. 속임수를 사용하고 전체 배열에 대해 두 가지 데이터 유형 중 더 큰 것을 사용하고 전체 묶음을 캐스팅 할 수 있지만 은 오류가 발생하기 쉽고 그다지 포기하지 않기 때문에 문제에 대한 아이디어를 권장하지 않습니다. 유형 안전의 환영 C가 있습니다.

첫 번째 행에 다른 배열을 사용하여 인덱스를 검색하면 너무 많은 시간이 걸리고 내 프로그램의 성능에는 좋지 않습니다.

올바른 솔루션을 먼저 작성한 다음 올바른 솔루션이 충분히 빠르지 않은 경우 최적화하십시오. 그런 해결책이 있다면 게시하십시오. 그렇지 않다면 작성한 다음, 충분히 빠르지 않으면 최적화 방법에 대한 다른 질문을하십시오.