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;
}

追问

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-28
这个简单你定义一个数组, 然后随机读取数组下标就可以我写个随机读取 + - * /的函数给你, 你自己调用就可以function ReadSign: Char;
const
Sign: array[0..3] of Char = ('+', '-', '*', '/');
begin
Randomize;
Result := Sign[Random(3)];
end;本回答被提问者采纳
第2个回答  2018-10-28
#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); }
第3个回答  2018-10-27
#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;
}

运行样例:

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

相似回答