『壹』 用c語言把明明的隨機數這個題目做下
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int n,i,j,c;
int a[1000],b[1000];
cin>>n;
for(i=1;i<=n;i++)
{
cin>>a[i];
}
for(i=1;i<n;i++)
{
for(j=1;j<n;j++)
{
if (a[j]>a[j+1])
{
c=a[j];
a[j]=a[j+1];
a[j+1]=c;
}
}
}
for(i=1;i<=n;i++)
{
if (a[i]!=a[i-1])
{
b[0]++;
b[b[0]]=a[i];
}
}
cout<<b[0]<<" ";
for (i=1;i<=b[0];i++)
{
cout<<b[i]<<" ";
}
system("PAUSE");
return EXIT_SUCCESS;
}
『貳』 C語言編程:隨機出10道100以內的整數加減法算術題。
這個其實很簡單
給你個完整的,我很少寫完整的代碼
#include <stdio.h>
main()
{
int i;
int a[10],b[10],c[10],d[10],e[10];
for(i=0;i<10;i++) //生成題目
{
while(1)
{
a[i]=rand()%100+1; //產生ab隨機數
b[i]=rand()%100+1;
c[i]=rand()%4+1; //產生運算+-*/隨即數
switch(c[i])
{
case 1:d[i]=a[i]+b[i];break;
case 2:d[i]=a[i]-b[i];break;
case 3:d[i]=a[i]*b[i];break;
case 4:while(b[i]==0) //在除法中,要是b是0,重新生成,直到不是0為止
b[i]=rand()%100+1;
d[i]=a[i]%b[i];break; //這里看余數,一般來說,不能整除,不可以
}
if((d[i]<100||d[i]>0)II(c[i]==4&&d[i]!=0)) //判斷d是否在100之內,還有就是除法不能有餘數
break; //滿足條件,生成下一個,不滿足重新來過
}
if(c[i]==4)
d[i]=a[i]/b[i]; //這個算出除法的結果
}
for(i=0;i<10;i++) //出題
{
printf("%d\n%d",i+1,a[i]);
if(c[i]==1)
putchar("+");
if(c[i]==2)
putchar("-");
if(c[i]==3)
putchar("X");
if(c[i]==4)
putchar("/");
printf("%d=",b[i]);
scanf("%d",e[i]);
system("cls");
}
for(i=0;i<10;i++) //最後列印結果
{
printf("%d\n%d",i+1,a[i]);
if(c[i]==1)
putchar("+");
if(c[i]==2)
putchar("-");
if(c[i]==3)
putchar("X");
if(c[i]==4)
putchar("/");
printf("%d=%d",b[i],e[i]);
if(d[i]==e[i])
printf("yes!!\n");
else
printf("NO!! %d\n",d[i]);
}
}
『叄』 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次,最後索引數組裡面最後十個裡面的值,就是抽出的試題索引號
有啥不明白的,可以再問我
『肆』 利用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語言隨機生成10到加減法題 用rand函數
先用srand函數設置隨機數種子,再用rand函數取兩個隨機數作為運算數字,而運算符只有+和-,那麼用rand()%2來得到0~1的隨機數來決定運算符號。
下面演示代碼,隨機生成10道加減題,輸入回答,判斷正確性。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define M 10//題目數量
int main(void)
{
int n=M,num1,num2,s,y,a;
srand(time(NULL));
while(n--)
{
y=rand()%2;
num1=rand();
num2=rand();
if(y)
printf("問題%d:%d+%d=",M-n,num1,num2),s=num1+num2;
else
printf("問題%d:%d-%d=",M-n,num1,num2),s=num1-num2;
scanf("%d",&a);
if(a==s)printf("回答正確! ");
else printf("回答錯誤!正確答案:%d ",s);
}
return 0;
}
『陸』 c語言10以內隨機加減乘除出題然後是否繼續做題
代碼:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char c;/*字元c表示四則運算符*/
double a,b;/*a,b表示參與運算的數字*/
scanf("%c",&c);/*輸入c,即選擇運算符*/
if(c=='A'||c=='S'||c=='M'||c=='D')
{
scanf("%lf%lf",&a,&b);/*輸入表示參與運算的數字*/
if(c=='A')/*滿足條件即進行加法運算*/
printf("%g",a+b);
else if(c=='S')/*滿足條件即進行減法運算*/
printf("%g",a-b);
else if(c=='M')/*滿足條件即進行乘法運算*/
printf("%g",a*b);
else if(c=='D')/*滿足條件即進行除法運算*/
printf("%g",a/b);
}
else
exit(1);/*若輸入字元並非表示四則運算的字元則退出程序*/
return 0;
}