[英]C++ - Variable Decrement
嘿。
我有这个代码,它出于某种神秘的原因设置了一个表格。 尺寸为 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 个变量来做到这一点吗?
提前致谢。
这里有一个简化:
switch(k++%5){
case 0:
table[i][j]='|';
break;
case 1:
case 4:
table[i][j]=' ';
break;
case 2:
case 3:
table[i][j]= '0';
break;
default:
continue;
}
使用 C++,一种情况可以归入另一种情况,例如上面的情况 1 和 2。
可以简化案例 2 和 3 的表达式。 我将使用案例 2 作为示例:
((((k-2)/50)%10)+48)
用 2 代替 k 产量((((2-2)/50)%10)+48)
简化:
((((0)/50)%10)+48)
零除以任何东西都是零,再次简化:
(((0)%10)+48)
零模任何东西都是零,因为它涉及除法:
((0)+48)
简化:
(48)
替换为等效字符(因为您的数组是char
):
'0'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.