c++ - 如何使用 char 数组索引的排列作为运算符?

标签 c++ c arrays operators

请看看我的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/

相关文章:

c++ - SFML 文本在小 View 中显得巨大

c - 访问函数 pthread 中的结构变量

c++ - 从函数指针输出动态数组

java - ImageJ 中一幅图中的 vector (Java)

c++ - eekg() 函数失败

c++ - 如何覆盖qt中的标签宽度?

c - float 操作如何在 c 中工作?大数字奇怪的结果

c - C中返回状态的初始值应该是多少?

python - 将值作为索引函数分配给 2D numpy 数组的有效方法是什么

c++ - 尝试使用 opencv 在 C++ 中实现一小部分 matlab 代码