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);//輸出一下分數。
輸入輸出函數我就不具體寫了,你可能想完成的更美工一點之類的,但是大致流程就這樣子。