【发布时间】:2015-08-25 21:16:59
【问题描述】:
嘿。
我有这段代码,它出于某种神秘原因设置了一个表格。尺寸为 6x60。这意味着 SIZEY 定义为 6,SIZEX 定义为 60。
void set_table(char** table)
{
int i,j,k=0;
for(i=0;i<SIZEY;i+=3){
for(j=0;j<SIZEX;j++){
switch(k++%5){
case 0:
table[i][j]='|';
break;
case 1:
table[i][j]=' ';
break;
case 2:
table[i][j]=(char)((((k-2)/50)%10)+48);
break;
case 3:
table[i][j]=(char)((((k-3)/5)%10)+48);
break;
case 4:
table[i][j]=' ';
break;
default:
continue;
}
}
}
}
如您所见,我正在使用 3 个变量来执行此操作。问题是,我可以用 2 个变量,甚至只有 1 个变量来做到这一点吗?
提前致谢。
【问题讨论】:
-
你想达到什么目的?
-
@KirilKirov 只是想知道这是否可以用更少的资源来完成
-
@KirilKirov ,对不起,我没有正确阅读。
-
少并不总是更好。当然,你可以用一个变量来做这件事,然后做一堆数学运算来得到你的
j和k索引,但是代码几乎是不可读的。如果您希望代码更清晰,请使用std::vector之类的类,查看algorithm标头并让您的代码更具自我记录性。 -
您可以使用单个变量来执行此操作。但正如 TartanLlama 已经指出的那样,它很难阅读。而且由于需要乘法和/或除法,代码会慢得多。
标签: c++ function variables multidimensional-array char