2012-11-26 28 views
0

我编程一段时间,但为了这个,我无法找到答案尚未循环。在不同变量的名称

可以说,我想,当我改变变量的名称环路上运行。

可以说我有:

int ran1; 
int ran2; 
int ran3; 

现在我要为循环,把号码给他们运行:

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.. 

我知道其他的方式,它利用多行代码。

+2

你为什么不使用数组,而不是变量集? – Crozin

+2

使用数组。例如'INT跑[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数组,而不是三个独立的变量,从一开始。)