2012-11-26 2 views
0

나는 잠시 동안 프로그래밍하고 있지만 이것에 대해서는 아직 답변을 찾을 수 없습니다.다른 변수 이름에 대한 루프에 대한

변수의 이름을 변경할 때 루프에서 실행하고 싶다고 말하면됩니다. 내가 코드의 줄 이상 소요 다른 방법을 알고

for(int k=0;k<3;k++) 
ran%k=k; // this is wrong ,but i am looking for the correct way . 
      //output should be :ran1=0 ran2=1 ran3=2.. 

:

int ran1; 
int ran2; 
int ran3; 

이제 내가 그들에게 숫자를 넣어 루프를 실행하려면 :

내가 가지고 있다고 할 수 있습니다.

+2

왜 변수 집합 대신 배열을 사용하지 않습니까? – Crozin

+2

배열을 사용하십시오. 예 : 'int ran [3]' – nhahtdh

+1

배열을 옵션으로 사용하지 않습니까? – Maciek

답변

6

배열로 만드십시오!

int ran[3]; 

for (int k = 0; k < 3; k++) 
{ 
    ran[k % 3] = k; 
} 

지금, 대신 ran1, 또는 ran2를 사용하여, 당신은 ran[1] 또는 ran[2]을 사용합니다 : 숫자로 차별화 된 다른 이름을 사용하는 것은 좋지 않은 방법입니다. C 배열은 매우 혼란스럽고 포인터와 구별됩니다.

+0

감사합니다, 왜 모듈로? 왜 [k] = 3을 뛰지 않았습니까? – Curnelious

+0

@Rant'k'가'2'보다 커지기를 원한다면, 깨지지 않을 것입니다. –

1

배열을 사용

int ran[3]; 
for(int k=0;k<3;k++) 
ran[k]=k; 
1

당신은 간단한 int ran[3]으로 배열을 정의하고 다음을 얻기 위해 코드를 아래에 서면으로이를 달성 할 수 있습니다 : -

ran[k % 3] = k; 
5

당신이 절대적으로 이러한 변수를 유지해야하는 경우 별도의 옵션을 사용하면 포인터 배열을 사용하여 변수에 "인덱스"를 지정하고 변수를 통해 변수에 액세스 할 수 있습니다.

int ran1, ran2, ran3; 

int *rans[3] = { &ran1, &ran2, &ran3 }; 

for (int k = 0; k < 3; k++) 
    *rans[k] = k; 

(하지만 처음부터 세 개의 별도 변수 대신 int 배열을 사용해야합니다.)