当前位置:首页 » 编程语言 » c语言随机数出题
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言随机数出题

发布时间: 2023-01-08 16:25:06

‘壹’ 用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道题。

  1. 先建立一个试题索引数组,idxarr = {0,1,2,...,99}

  2. 然后用随机数生成函数rand(),生成一个0到99的随机数,把索引数组里面该索引的值与数组中最后一个值调换,比如生成随机数为2,则修改索引数组为idxarr={0,1,99,3,4,...,98,2}

  3. 然后再生成一个0到98的随机数,把索引数组里面该索引的值与数组中倒数第二个值调换,比如这次生成的随机数是4,则修改索引数组为idxarr={0,1,99,3,98,5,...,97,4,2}

  4. 以此类推...执行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;
}