c语言问题 请问如何随机产生加减乘除任意一种运算符号呢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言问题 请问如何随机产生加减乘除任意一种运算符号呢相关的知识,希望对你有一定的参考价值。

任务4 最好在我发的代码上改一改 谢谢大佬

#include <stdlib.h>
#include <time.h>
int main()

int a,b,i,s,num,n=0;
char ch,cal[4]='+','-','*','/';
srand(time(NULL));
for(i=0;i<10;i++)

a=rand()%10+1;
ch=cal[rand()%4];
b=rand()%10+1;
printf("%d%c%d=",a,ch,b);
switch(ch)

case '+':s=a+b;break;
case '-':s=a-b;break;
case '*':s=a*b;break;
case '/':s=a/b;break;

scanf("%d",&num);
if(num==s)

printf("Right!\\n");
n++;

else printf("Wrong!\\n");

printf("总分: %d\\n正确率: %%%d",n*10,n*10);
return 0;

追问

大佬 我按照你发的改了下 任务四可以了 可以指点一下任务五嘛

参考技术A 这个简单你定义一个数组, 然后随机读取数组下标就可以我写个随机读取 + - * /的函数给你, 你自己调用就可以function ReadSign: Char;
const
Sign: array[0..3] of Char = ('+', '-', '*', '/');
begin
Randomize;
Result := Sign[Random(3)];
end;本回答被提问者采纳
参考技术B #include <stdlib.h> #include <stdio.h> #include <time.h> void main( void ) int i,t; char a; srand( (unsigned)time( NULL ) ); t=rand()%4; if (t==0) a='+'; if (t==1) a='-'; if (t==2) a='x'; if (t==3) a='/'; printf( " %6c\n", a); 参考技术C #include "stdio.h"
#include <stdlib.h>
#include "time.h"
int main(int argc,char *argv[])
char s[5]="+-*/",i;
srand((unsigned)time(NULL));
for(i=0;i<10;i++)
printf("%d %c %d = ?\\n",rand()%10,s[rand()%4],rand()%10);
return 0;

运行样例:

只是写出了怎么随机产生+-*/,其他自己弄。希望能帮助到你……

以上是关于c语言问题 请问如何随机产生加减乘除任意一种运算符号呢的主要内容,如果未能解决你的问题,请参考以下文章

C语言中16进制之间的加减乘除运算怎么做?

用c语言作 通过计算机随机产生10道四则运算题

C语言怎么实现任意两个数的四则运算?

c语言里,想产生0到100之间的一个随机数赋值给i,请问怎么写?

c语言中怎么处理一个特别大的数据的运算

四则运算2(改进版)