请看看我的c++程序。
#include<stdio.h>
int main()
{
char sign[]={'+','-','/','*'};
int i,j,k,l=0;
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
{
for(k=0;k<=3;k++)
{
if(sign[j]!=sign[i]&&sign[k]!=sign[i]&&sign[k]!=sign[j])
{
printf("%c %c %c\n",sign[i],sign[j],sign[k],l);
}
}
}
}
return 0;
}
这个程序的输出是这样的..
+ - /
+ - *
+ / -
+ / *
....
我想在数字之间使用它们... 像这样..
#include<stdio.h>
int main()
{
char sign[]={'+','-','/','*'};
int i,j,k,l=0;
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
{
for(k=0;k<=3;k++)
{
if(sign[j]!=sign[i]&&sign[k]!=sign[i]&&sign[k]!=sign[j])
{
int l;
l=18sign[i]12sign[j]4sign[k]5;
printf("18%c12%c4%c5=%d",sign[i],sign[j],sign[k],l);
}
}
}
}
return 0;
}
我想要这样的输出..
18+12-4/5=29
18+12-4*5=10
18+12/4-5=16
18+12/4*5=33
.....
那么这个代码是什么?
[我不能使用 switch 标签,因为为此我必须声明 24 个案例。有没有办法使用索引作为运算符?]
最佳答案
没有。
C(和 C++)是静态编译语言。您无法在运行时做出需要存在不同代码的决策,因为编译器不再生成该代码。
在 C++ 中,您可以使用各种模板技巧来使编译器在编译时为各种情况生成代码,但这里不太清楚如何应用。
关于c++ - 如何使用 char 数组索引的排列作为运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26731709/