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