C 语言怎样实现运算符的循环

a123149340 2008-07-16 07:10:11

a=b?c

假如我要作这个的循环尝试 +,-,*,/ 该怎样作?
...全文
97 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyyapple 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 a123149340 的回复:]
24点 ,
光括号就有5种可能,
然后3个位置符号 ,4种符号 ,这样我要写60 个case 。也可以不过有没有更快的方法?? 我的思路就是循环运算符 不知道可不可以实现
[/Quote]

写个脚本解释器了
yyyapple 2008-07-16
  • 打赏
  • 举报
回复
#include <stdio.h> 

#define A_OP_B(a,b,i) ((i%4)==0 )?((a)+(b)) : (((i%4)==1 )?((a)-(b)) : (((i%4)==2 )?((a)*(b)) : ((a)/(b))))
int main(void){
int a=0, b=1, c=3;
char op[4] = {'+', '-', '*', '/'};

for( int i=0;i<4;i++)
{
a = A_OP_B(b, c, i);
printf(" %d = %d %c %d \n", a, b, op[i%4], c);
}

return 0;
}
a123149340 2008-07-16
  • 打赏
  • 举报
回复
24点 ,
光括号就有5种可能,
然后3个位置符号 ,4种符号 ,这样我要写60 个case 。也可以不过有没有更快的方法?? 我的思路就是循环运算符 不知道可不可以实现
a123149340 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 coverallwangp 的回复:]
C/C++ code#include<iostream.h>intmain()
{inta,b,c;
a=1;
b=2;for(inti=0; i<4;++i)
{switch(i)
{case0:
c=a+b;break;case1:
c=a-b;break;case2:
c=a*b;break;case3:
c=a/b;break;
}
cout<<"a="<<a<<";"<<"b="<<b<<endl;
cout<<c<<endl;
}return0;
}
[/Quote]

这位前辈的确实可行,不过是在很少的情况下。我在写24点程序的时候不知道怎样去循环,尝试运算符,要是象这样,那么代码量将大大增加!
a123149340 2008-07-16
  • 打赏
  • 举报
回复
这只是打印出来了


对不起是我没说明白

a=5
b=2
a==b?c
作?这里的循环 +,-,*,/

楼上那位前辈c语言不支持for 内定义 可能是C++吧
coverallwangp 2008-07-16
  • 打赏
  • 举报
回复

#include <iostream.h>


int main()
{
int a,b,c;
a=1;
b=2;
for (int i = 0; i < 4; ++i)
{
switch(i)
{
case 0:
c = a + b;
break;
case 1:
c = a - b;
break;
case 2:
c = a * b;
break;
case 3:
c = a / b;
break;
}
cout<<"a="<<a<<";"<<"b="<<b<<endl;
cout<<c<<endl;
}

return 0;
}
ndsl3334 2008-07-16
  • 打赏
  • 举报
回复

#include <stdio.h>

int main()
{
char op[4] = {'+', '-', '*', '/'};
for (int i = 0; i < 4; ++i) {
printf("a = b %c",op[i]);
printf(" c\n");
}
}
ndsl3334 2008-07-16
  • 打赏
  • 举报
回复

#include <stdio.h>

int main()
{
char op[4] = {'+', '-', '*', '/'};
for (int i = 0; i < 4; ++i) {
printf("a = b ");
printf("%c",op[i]);
printf(" c\n");
}
}
a123149340 2008-07-16
  • 打赏
  • 举报
回复
我的意思是 用循环实现
a=b+c
a=b-c
a=b*c
a=b/c
a123149340 2008-07-16
  • 打赏
  • 举报
回复
我看不懂 C++
cout << "a = b " << op[i] << " c" << endl;

有C 怎么表达呢
ndsl3334 2008-07-16
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;

int main()
{
char op[4] = {'+', '-', '*', '/'};
for (int i = 0; i < 4; ++i) {
cout << "a = b " << op[i] << " c" << endl;
}
}

M_S_D_N 2008-07-16
  • 打赏
  • 举报
回复
没看明白楼主意思……

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧