1. 用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 );
}
}
2. C语言随机产生四则运算,加减乘除最少一次怎么处理
既然是,随机产生四则运算,那么就让计算机产生一个0到3之间的随机整数,然后根据得到的随机整数来确定采用哪种运算,数字零代表加,一代表减,二代表乘法,三代表除法。因为产生的数量有十个,所以一般运算符都是会产生的。为确保万无一失,可以,前面四个分别是加减乘除,后面四个就让它随机产生。
3. c语言四则运算
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int n,n1;
char fun(int op){if(op==0)return '+';else if(op==1)return '*';else if(op==2)return '-';else return '/';}
int Compute( int a, int b, int op )
{
int p;
if(op==0)p=a+b;else if(op==1)p=a*b;else if(op==2)p=a-b;else p=a/b;
if(n==p){n1++;
return 1;}
else
return 0;
}
void Print(int flag)
{
if(flag==1)printf("Right!\n");
else
printf("Not correct!\n");
}
void main()
{
srand((unsigned)time(NULL));
int a,b,op,i=0,num;
while(true)
{
if(i==10)break;
a=rand()%10+1;
b=rand()%10+1;
op=rand()%4;
if(a%b==0&&a>=b)
{
i++;
printf("%d%c%d=",a,fun(op),b);
scanf("%d",&n);
num=Compute(a,b,op);
Print(num);
}
}
printf("you grade is:%d,you falsed %d!\n",n1*10,10-n1);
}
4. C语言 :编写一个函数,通过计算机随机产生一道四则运算题
// clca4.cpp : 定义控制台应用程序的入口点兆神。
//
#include "stdafx.h"
#include <stdio.h>
#include<stdlib.h>
#include<time.h>
using namespace std;
void fun(int n)
{
int i, x = 0, s = 0, a = 0, b = 0, sum = 0, count = 0;
srand((unsigned)time(NULL));
for (i = 0; i<n; i++)
{
a = rand() % 10;
b = rand() % 10;
x = rand() % 4; //3不对,没有除法
printf("%d\n", a);
switch (x)
{
case 0:
printf("+\n");
s = a + b;
break;
case 1:
printf("-\n");
s = a - b;
break;
case 2:
printf("*\n");
s = a*b;
break;
case 3:
printf("/\n");
s = a / b;
break;
default:
printf("Not correct!\n");
}
printf("%d\n", b);
printf("请输入计算结果:\n");
scanf_s("%d", &sum); //scanf 没有 \n
if (sum == s)
{
count++;
printf("Right!\n");
}
else
printf("好冲wrong!\n");
}
printf("%d道题目正确\n", count);
}
int _tmain(int argc, _TCHAR* argv[])
{
int n;
printf("请输入需要完成的题目数量:"友猜歼);
scanf_s("%d", &n);
fun(n);
return 0;
}
以上程序在VS2013 win32控制台测试过。。。。。。
5. c语言中三个整数随机的四则运算
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10 /洞仿高/随机出10道题目
int main()
{
int num1, num2, num3, count=0, result,resultTrue,flag;//result:用户输入结果 resultTrue:正确结大氏果 flag:0 先计算左边 1先计算右边
char op1, op2;
srand(time(NULL)); //启动随机数生成器
do {
count++;
num1 = rand() % 10+1;
num2 = rand() % 10+1;
num3 = rand() % 10+1;
switch (num1 % 4)
{
case 0:
op1 = '+';
break;
case 1:
op1 = '-';
break;
case 2:
op1 = '*';
break;
case 3:
op1 = '/';
break;
default:
break;
}
switch (num2 % 4)
{
case 0:
op2 = '+';
flag = 0;
break;
case 1:
op2 = '-';
flag = 0;
break;
case 2:
op2 = '*';
if((op1=='*')||(op1=='/')) flag = 0;
else flag = 1;
break;
case 3:
op2 = '/';
if((op1=='*')||(op1=='/')) flag = 0;
else flag = 1;
break;
default:
break;
}
printf("%d %c %d %c %d = ",num1,op1,num2,op2,num3);
if(flag==0)
{
resultTrue = 0;
switch (op1)
{
case '+':
resultTrue = num1+num2;
break;
case '-':
resultTrue = num1-num2;
break;
case '*':
resultTrue = num1*num2;
break;
case '/':
resultTrue = num1/num2;
break;
default:
break;
}
switch (op2)
{
case '+':
resultTrue += num3;
break;
case '-':
resultTrue -= num3;
break;
case '*':
resultTrue *= num3;
break;
case '/':
resultTrue /= num3;
break;
default:
break;
}
}
else
{
resultTrue = 0;
switch (op2)
{
case '+'纳尺:
resultTrue = num2+num3;
break;
case '-':
resultTrue = num2-num3;
break;
case '*':
resultTrue = num2*num3;
break;
case '/':
resultTrue = num2/num3;
break;
default:
break;
}
switch (op1)
{
case '+':
resultTrue = num1 + resultTrue;
break;
case '-':
resultTrue = num1 - resultTrue;
break;
case '*':
resultTrue = num1 * resultTrue;
break;
case '/':
resultTrue = num1 / resultTrue;
break;
default:
break;
}
}
scanf("%d",&result);
if (result == resultTrue)
printf("结果正确!\n");
else
printf("结果错误!\n");
} while(count<=N);
return 0;
}
6. 用c语言作 通过计算机随机产生10道四则运算题
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
#include <time.h>
int main()
{
int a = 0;
int b = 0;
int mode = 0;//0:加 1:减 2:乘 3:除
int c = 0;
int result = 0;
int score = 0;
int i = 0;
srand((unsigned)time( NULL ) ); //初始化随机数发生器,使得每次运行生成的随机数不同
for(i=0;i<10;i++) //做十题
{
a = rand() % 10; //生成一个0~9之间的随机数
b = rand() % 10; //生成一个0~9之间的随机数
mode = rand() % 4; //生成一个0~3之间的随机数,代表运算符
printf("%d", a); //打印算式
switch(mode) //确定运算符
{
case 0:
printf("+ ");
result= a + b; //选择了+运算的正确答案
break;
case 1:
printf("- ");
result= a - b; //选择了-运算的正确答案
break;
case 2:
printf("* ");
result= a * b; //选择了*运算的正确答案
break;
case 3:
printf("/ ");
result= a / b; //选择了/运算的正确答案
break;
default:
printf("somethingis wrong!\n");
break;
}
printf("%d = ", b);
scanf("%d", &c); //输入答案
if(c == result) //与正确答案一致
{
score+= 10; //加分
printf("Right\n\n");
}
else
{
printf("Wrong\n\n"); //错开
}
}
printf("Yourscore is: %d\n\n\n", score);//显示十道题的得分
return1;
}
7. C语言中随机产生四则运算符号
char op[4]={'+','-','×','÷'};
char theop;
int rand;
//*******随机数孝行闷你会吧,在此处加入产生一个随机数的代码,带咐最好很大,赋值给rand,然后巧弯:
theop=op[rand%4]; //theop就是你要的随机运算符。
8. c语言 设计小学生四则运算测试程序,要求随机产生10题四则运算题,答完后给出得分
/*
* sizeyunsuan.c
*
* Created on: 2011-6-17
* Author: zhanglujin
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int yunsuan(int M)
{
int m=1,n=0,a,b,daan;
while(1) //这里得解决/的情况,因为这里保证是整数,所以肢和一些条件要满足正慎才能除,若不成立,改为+得了。
{
srand(time(0));
a=rand()%M;
b=rand()%M;
switch(1+rand()%4)
{
case 1:
{
printf("<%d>",m);
printf("%4d+%4d=",a,b);
scanf("%d",&daan);
if(daan==(a+b))
n++;
else
printf("Fault!\n");
m++;
break;
}
case 2:
{
if(a>=b)
{
printf("<%d>",m);
printf("%4d-%4d=",a,b);
scanf("%d",&daan);
if(daan==(a-b))
n++;
else
printf("Fault!\n");
m++;
break;
}
else
{
printf("<%d>",m);
printf("%4d-%4d=",b,a);
scanf("%d",&daan);
if(daan==(b-a))
n++;
else
printf("Fault!\n");
m++;
break;
}
}
case 3:
{
printf("<%d>"举饥敬,m);
printf("%4d*%4d=",a,b);
scanf("%d",&daan);
if(daan==(a*b))
n++;
else
printf("Fault!\n");
m++;
break;
}
default:
{
if((b!=0)&&(a>=b)&&((a%b)==0))
{
printf("<%d>",m);
printf("%4d/%4d=",a,b);
scanf("%d",&daan);
if(daan==(a/b))
n++;
else
printf("Fault!\n");
m++;
break;
}
else if((a!=0) && (b>=a) && ((b%a)==0))
{
printf("<%d>",m);
printf("%4d/%4d=",b,a);
scanf("%d",&daan);
if(daan==(b/a))
n++;
else
printf("Fault!\n");
m++;
break;
}
else //若除不成立,改为+操作,防止循环多次。
{
printf("<%d>",m);
printf("%4d+%4d=",a,b);
scanf("%d",&daan);
if(daan==(a+b))
n++;
else
printf("Fault!\n");
m++;
break;
}
}
}
if(m == 11)
break;
}
return n;
}
int main()
{
int M,p;
float right;
char o;
while(1)
{
//redo:
printf(" 欢迎进入四则运算训练营\n\n1.10以内的四则运算\n2.20以内的四则运算\n0.退出\n\n");
printf("请选择功能号(1/2/0):");
scanf("%d",&p);
getchar();
if(p==1)
M=10;
if(p==2)
M=20;
if(p==0)
exit(0);
printf("您选择的是%d以内的四则运算\n",M);
int temp = yunsuan(M);
right= temp/10.0;
printf("正确率:%.2f%%",right*100);
printf(" score=%d",temp*10);
getchar(); //吸收前面的回车键。
printf("继续吗?(y/n)");
scanf("%c",&o);
if(o == 'y' || o == 'Y') //这里的继续存在问题啊,怎么弄??
{
system("pause");
//goto redo;
}
else
{
break;
}
}
getchar();
return 0;
}
9. 用C语言做一个四则运算
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>
int moshi;
int count;
void plus(int first,int second)
{
int result;
printf("%d + %d =",first,second);
scanf("%d",&result);
if(result == first+second)
{
printf("Right!\n");
}
else
{
printf("wrong!\nThe correct answer is:%d\n",first+second);
}
}
void minus(int first,int second)
{
int result;
printf("%d - %d =",first,second);
scanf("%d",&result);
if(result == first-second)
{
printf("Right!\n");
}
else
{
printf("wrong!\nThe correct answer is:%d\n",first+second);
}}
void multiply(int first,int second)
{
int result; //运算结果
printf("%d * %d =",first,second);
scanf("%d",&result);
if(result == first*second)
{
printf("Right!\n");
}
else
{
printf("wrong!\nThe correct answer is:%d\n",first*second);
}
}
void divide(int first,int second)
{
float result; //运算结果
float temp;
second = rand()%100;
printf("%d / %d =",first,second);
if(second==0)
{
printf("Error!\n");
return;
}
scanf("%f",&result);
temp=result*100 - ((float)first/(float)second)*100;
if(abs(temp)<0.01)
{
printf("Right!\n");
}
else
{
printf("wrong!\nThe correct answer is:%f\n",(float)first/(float)second);
}
}
int main()
{
printf("小提示:\n每种模式默认运行5次就得重新选择,中途退出直接按Ctrl+c!\n");
p: printf("请选择模式:\n\n");
printf("----------1:练习模式\n");
printf("----------2:计算模式\n");
count=0;
scanf("%d",&moshi);
switch(moshi)
{
case 1:
{ int n;
int first,second;//保存两个运算的数字
while(true)
{
n=first%4; //除以4取余数,随机确定调用函数
srand(time(NULL));
first = rand()%100;
second = rand()%100;
if(count==5)
goto p;
switch(n)
{
case 0:
{
plus(first,second);
count++;
break;
}
case 1:
{
minus(first,second);
count++;
break;
}
case 2:
{
multiply(first,second);
count++;
break;
}
case 3:
{
divide(first,second);
count++;
break;
}
default:
{
count++;
break;
}
}//switch
}//while
}//case1
case 2:
{
int first,second;
char c,c1; //保存运算符
while(true)
{
scanf("%d%c%d%c",&first,&c,&second,&c1);
if(count==5)
goto p;
switch(c)
{
case '+':
{
printf("%d+%d=%d\n",first,second,first+second);
count++;
break;
}
case '-':
{
printf("%d-%d=%d\n",first,second,first-second);
count++;
break;
}
case '*':
{
printf("%d*%d=%d\n",first,second,first*second);
count++;
break;
}
case '/':
{
printf("%d/%d=%f\n",first,second,(float)first/(float)second);
count++;
break;
}
default:
{
count++;
break;
}
}//switch
}//while
}//case2
default:
{
break;
}
}
return 0;
}
10. 用简单的c语言编写四则运算题
这个很简单啊。
假设你已经输入写好了,然后制定的运算种类存在int op里面,int x表示数的位数
那么
if (x==1) {a=rand()%9+1;b=rand()%9+1;} else {a=rand()%90+10;b=rand()%90+10;} 随机生成两个数
然后if (op==0) c=a+b;if (op==1) c=a-b;if (op==2) c=a*b;if (op==3) c=a/b;电脑计算出答案
然后你把a,b运算符号都输出,然后读入用户的答案,判断是否和c一致就可以了。
比如输入到d。假设规定用户输入-1表示结束。
那么就if (d==-1) break。整个过程写在一个循环里面就行了。
if (c==d) ct1++; else ct2++; 记录对错次数
最后输出一下ct1和ct2就可以了。
最后大致写下总的。
ct1=ct2=0;
while(1)
{
input();//你自己完成输入。
if(x==1){a=rand()%9+1;b=rand()%9+1;}else{a=rand()%90+10;b=rand()%90+10;}
if(op==0)c=a+b;if(op==1)c=a-b;if(op==2)c=a*b;if(op==3)c=a/b;
output(a,b,op);//你自己完成以下输出a,b和计算符号。以及提示语之类的
readfromuser(d);//你自己看看怎么从用户这边读入,并且判断是否是退出之类的。
if(isexit(d))break;//如果你自己判断出来用户要退出就退出。
if(c==d)ct1++;ct2++;
}
outputscore(ct1,ct2);//输出一下分数。
输入输出函数我就不具体写了,你可能想完成的更美工一点之类的,但是大致流程就这样子。