❶ c语言代码,100以内随机加减乘除
//100以内加减乘除 不会出现 97*33 或者是 37 / 21 之类的
//但还是避免不了 1*30, 10/1 这么残的
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void swap(int &a, int &b)
{
int tmp = a;
a = b;
b = tmp;
}
int func(){
int opn1, opn2, index;
int input, ret, i;
char op;
const char op_a[] = {'+', '-', '*', '/'};
srand(time(NULL));
index = rand()%4;
op = op_a[index];
switch(index){
case 0:
case 1:
ret = rand()% 100 + 1;
opn1 = rand()% ret;
opn2 = ret - opn1;
if(index == 1) swap(ret, opn1);
break;
case 2:
case 3:
ret = rand()% 100 + 1;
opn2 = (rand() % 10 + 1);
opn1 = ret / opn2;
if(opn1 == 0) ret *= 10;
opn1 = ret / opn2;
opn2 = ret /opn1;
ret = opn1 * opn2;
if(rand()%2 == 0) swap(opn1, opn2);
if(index == 3) swap(ret, opn1);
break;
default:
break;
}
printf("%d %c %d = ?\n", opn1, op, opn2);
i = 0;
scanf("%d", &input);
while(input != ret){
printf("wrong %d\n", ++i);
if(i == 3) {
printf("answer is %d\n", ret);
break;
}
scanf("%d", &input);
}
if(i < 3) printf("right\n");
return i;
}
int main(){
//func();
while(1) func();
return 0;
}
❷ c语言问题 请问如何随机产生加减乘除任意一种运算符号呢
#include<stdlib.h>
#include<time.h>
intmain()
{
inta,b,i,s,num,n=0;
charch,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++;
}
elseprintf("Wrong! ");
}
printf("总分:%d 正确率:%%%d",n*10,n*10);
return0;
}
❸ c语言中如何随机输出加减乘除
给定加减乘除的符号,给一个字符串,然后随机分配一个数,输出这个数所对应的字符串中的字符。
#include<stdio.h>
main()
{
float a,b;
char c;
printf("请按照这样的格式输入zhuan:a(+,-,*,/)b ");
scanf("%f%c%f",&a,&c,&b);
switch(c)
{
case'+': printf("%f",a+b);break;
case'-':printf("%f",a-b);break;
case'*':printf("%f",a*b);break;
case'/':printf("%f",a/b);break;
default:printf("输入有误");
}
}
(3)c语言随机加减乘除扩展阅读:
C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。
❹ c语言怎样随机选择加减乘除
1对应加,2对应减,3对应乘,4对应除,然后用随机数函数,根据得到的随机数,选择用哪一个。
❺ C语言中怎么产生随机加减乘除运算
晚上要是有时间就给你作出来
❻ c语言 生成两个随机数随机加减乘除 并且相减相除时前面的数要比后面的大 (都是整数运算)相除时要整除
两个随机数 x,y, 随机加减乘除 z ..程序如下。
#include <stdio.h>
#include <time.h>
int main(){
int x,y,z,t,i;
srand(time(0));
for (i=0;i<8;i++){
z = rand()%4;
x = rand()%100+1;
y=rand()%100+1;
if (x<y){t=x;x=y;y=t;};
switch(z){
case 0: printf("%d+%d=%d\n",x,y,x+y);break;
case 1: printf("%d-%d=%d\n",x,y,x-y);break;
case 2: printf("%d*%d=%d\n",x,y,x*y);break;
case 3: printf("%d/%d=%d\n",x,y,x/y);break;
};
};
return 0;
}
❼ c语言如何随机100以内的加减乘除算术题
如果只包含一个运算符你可以直接随机数,首先给运算符编号:如:+1,-2,*3,÷4然后表达式:a=随机函数算出的100以内整数b=随机函数算出的100以内整数c=随机运算符的编号然后casecc=1//即加法的时候计算a+bc=2//即减法的时候计算a-b(此时需要判断a和b的大小,如果a<b,应该需要重新随机a和b)c=3//即乘法的时候计算a*bc=4//即除法的时候计算a/b(需要判断b是否为0,为0则需要重新随机b,当a!=a/b*b时即a无法整除b的时候也需要重新随机b)
❽ 用C语言随机出十个加减乘除运算,判断对错给总分
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
voidfun()
{
inta,b,c,s,s1;
srand(time(NULL));
a=rand()%9+1;
b=rand()%9+1;
c=rand()%4+1;
switch(c)
{
case1:s=a+b;printf("%d+%d=",a,b);break;
case2:s=a-b;printf("%d-%d=",a,b);break;
case3:s=a*b;printf("%d*%d=",a,b);break;
case4:s=a;printf("%d/%d=",a*b,b);break;
}
scanf("%d",&s1);
if(s==s1)printf("回答正确! ");
elseprintf("回答错误!答案是:%d ",s);
}
intmain()
{
while(1)fun();
return0;
}
❾ C语言随机产生四则运算,加减乘除最少一次怎么处理
既然是,随机产生四则运算,那么就让计算机产生一个0到3之间的随机整数,然后根据得到的随机整数来确定采用哪种运算,数字零代表加,一代表减,二代表乘法,三代表除法。因为产生的数量有十个,所以一般运算符都是会产生的。为确保万无一失,可以,前面四个分别是加减乘除,后面四个就让它随机产生。
❿ 用C语言编程随机产生一道包含加减乘除的数学题
//小学生四则运算
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//产生 [a,b] 区间的随机数
#define RANDOM(a,b) (rand()%((b+1)-(a)) + (a))
//产生 1-20 的整数,如要改变算术范围,则修改这个宏的参数即可
#define GEN_VALUE() RANDOM(1, 20)
void main()
{
int v1, v2, t, r, a;
char op, ops[] = { '+', '-', '*', '/' };
srand( (unsigned)time(NULL) ); //用当前时间初始化随机数种子
printf( "请答题 Ctrl+C 结束...\n" );
while(1)
{
v1 = GEN_VALUE(); //随机生成第1个算数
v2 = GEN_VALUE(); //随机生成第2个算数
op = ops[ RANDOM(0,3) ]; //随机决定是哪个运算符
//保证第1个算数大于第2个算数,如不需要,则把这个判断删除即可
if( v1<v2 )
{
t = v1;
v1 = v2;
v2 = t;
}
//如果运算符为除法,且v1不能被v2整除则重新生成题目
if( op=='/' && v1%v2!=0 )
continue;
//计算正确的结果
switch(op)
{
case '+': a=(float)v1+(float)v2; break;
case '-': a=(float)v1-(float)v2; break;
case '*': a=(float)v1*(float)v2; break;
case '/': a=(float)v1/(float)v2; break;
}
//输出算式
printf( "%d%c%d=", v1, op, v2 );
//等待输入结果
scanf( "%d", &r );
if( r == a )
printf( " 答对喽!\n\n" );
else
printf( " 答错喽!正确答案是:%d\n\n", a );
}
}