⑴ c語言中怎麼產生隨機加減乘除運算
晚上要是有時間就給你作出來
⑵ 利用C語言隨機產生20道口算題
解題思路:
1、編寫測試題,且為30道,就要用到循環函數,因此想到用for()函數。
2、隨機產生兩個數,就想到用rand()函數。
代碼如下:#include<iostream.h>
#include<stdlib.h>
#include<time.h>枯念
int main()
{
int x,y,z,t;
srand(time(NULL));
cout<<"小學二年級四則運算測試題"<<endl;
for(int i=0;i<30;i++)
{
x=rand()%100;
y=rand()%100;
沒鍵困 z=rand()%4;
switch(z)
{
case 0:
cout<<x<<"+"<<y<<"="<<endl;
break;
case 1:
if(x<y)
{
t=x;
x=y;
y=t;
}
cout<<x<<"-"<<y<<"="<<endl;
break;
case 2:
cout<<x<<"*"<<y<<"="<<endl;
break;
case 3:
if(y!=0)
{
cout<<x<<"/"<<y<<"="<<endl;
}
else
{
亮巧 i=i-1;
}
break;
default:
cout<<"超出測試范圍"<<endl;
break;
}
}
cout<<"恭喜你已經完成了30道數學測試題"<<endl;
return 0;
}
⑶ C語言如何實現從指定題庫里抽取題目,實現隨機出題
比如現在有100道題,要抽10道題。
先建立一個試題索引數組,idxarr = {0,1,2,...,99}
然後用隨機數生成函數rand(),生成一個0到99的隨機數,把索引數組裡面該索引的值與數組中最後一個值調換,比如生成隨機數為2,則修改索引數組為idxarr={0,1,99,3,4,...,98,2}
然後再生成一個0到98的隨機數,把索引數組裡面該索引的值與數組中倒數第二個值調換,比如這次生成的隨機數是4,則修改索引數組為idxarr={0,1,99,3,98,5,...,97,4,2}
以此類推...執行10次,最後索引數組裡面最後十個裡面的值,就是抽出的試題索引號
有啥不明白的,可以再問我
⑷ 求:隨機出10道10以內小學加減法的c語言編程 每道題10分最後輸出得多少分
用rand()產生隨機數,rand()會產生從0到一個很大的數,我記不清了,反正很大。如果想出現100以內的,就用rand()%100。你可以定義三個int型整數,兩個表示加或者減的對象,另一個標示加或者減,因為只要出現兩碼握種情況之一衡春,所以可以用rand()%2,這樣只會有0,1兩種情況來標示加或者減。下面的就很容易了
int a,b,i,c;
for(i = 0;i < 10;i++)
{
a = rand()%100;
b = rand()%100;
c = rand()%2;
if(c == 0)//標示加法
{
printf("%d + %d = %d\咐模耐n",a,b,a+b);
}
else
{
printf("%d - %d = %d\n",a,b,a-b);
}
}
大致就這樣,希望給你點幫助
⑸ 用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 );
}
}
⑹ c語言編程 小學數學出題器
這題目最好是用C++去做帆祥,用面向對象可以加一些按鈕,搜轎謹對話框,列表框,編輯框等來實世基現,應該是比較好整的!
⑺ 小學數學出題系統C++代碼
一. 設計任務 小學數學出題系統概述: 為小學生教學服務,能夠根據小學生的需要隨機抽出兩位數的數學運算題,鋒銷可根據需要進行加減乘除運算。由學生在電腦上答題,並對其判斷正誤和記分。另外可以根據需要隨機抽出四則運算的混合運算題同樣應對其判斷正誤和記分。 基本要求: 抽題選擇功能 兩位數四則運算的出題功能 四則混合運算的抽題功能 答案判斷正誤功能 分數累積功能 出題存儲功能等
二.系統分析介紹以及有關變數、結構體的說明
(1)系統操作說明 1.主界面設計,選擇目錄中的各種功能。 2. 系統隨機出題,顯示算式,含加,減,乘,除四則運算以及敬梁混合四則運算。 3.完成題目後返回主菜單,查詢成績,以及回顧存儲過的試題。 4.測試時,系統自動出題,每題10分,統計得分。顯示各題的對錯信息。
2 (2)有關變數、結構體的說明 a>該系統主要由夠銀稿游造函數體、結構體等來並在main函數中引用這些函數和結構體以及打開或關閉文件來完成出題得分等功能。根據菜單分別選擇四則運算或者四則混合運算進行測試,進入出題階段,利用出題函數chuti()和chuti1()隨機產生四則運算和混合運算題目.完成題目後選擇返回進行評分和回顧試題系統查看。 b>模塊劃分及功能 1.選擇界面:在進入該系統後,須選擇所需體型或其他。 2.測試界面:在選擇了類別後,系統進入出題界面,使用者開始做練習。 3. 查分界面:完成題目後,回主菜單選擇輸出成績。 4. 回顧試題界面:在主菜單中選擇「查看所做題目」
⑻ 用C語言寫一個 小學生口算出題系統
一、設計的流程:
1. 主界面設計,選擇練習或測試,按ESC結束程序。
2. 題型選擇界面設計,選擇加、減、乘、除或混合運算,按ESC返回主界面。
3. 系統隨機出題,運算數及結果均在100以內,乘、除法應能整除,顯示算式。
4. 練習時,系統隨機出題,鍵入結果,正確和錯誤均有提示,出錯時允許再輸入,最多三次機會,若還不正確,給出答案。繼續出題,按ESC,顯示總題數,正確數和正確率。
5. 測試時,系統自動出10道題,每題只給一次機會,每題10分,統計得分。結束後,給出總分,顯示各題的對錯信息,錯誤的給出答案。中間按ESC鍵結束。顯示已作題的對錯信息,錯誤的給出答案,不顯示得分,按任意鍵返回題型選擇界面。
相關知識:按鍵操作、數組、指針、結構體等
二、常式:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
voidmain()
{
inta[10],b[10],d[10],c[10],num=0,result,add=0;
floatval;
charfa[5]={'+','-','*','/'};
/*出10道題*/
while(1)
{
srand((unsigned)time(NULL));
d[num]=abs(rand())%4;/*保證出題演算法的隨機性*/
while(1)/*保證出題成功*/
{
c[num]=-1;
a[num]=abs(rand())%100;
b[num]=abs(rand())%100;
if(d[num]==0)c[num]=a[num]+b[num];
elseif(d[num]==1)c[num]=a[num]-b[num];
elseif(d[num]==2)c[num]=a[num]*b[num];
elseif(d[num]==3)
{
if(b[num]>0)val=1.0*a[num]/b[num];
elseval=-1;
}
if(d[num]<=2)
{
if(c[num]>=0&&c[num]<=100)break;
}
else
{
if(a[num]==int(val)*b[num]&&val>=0)
{c[num]=val;break;}
}
}
num++;
if(num==10)break;
}
/*回答*/
num=0;
while(1)
{
printf("%d%c%d=",a[num],fa[d[num]],b[num]);
scanf("%d",&result);
if(result==c[num])
{
printf("回答正確! ");
add+=10;
}
else
printf("錯誤,正確答案:%d ",c[num]);
num++;
if(num==10)break;
}
printf(" 得分:%d ",add);
getch();
}
⑼ 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;
}