‘壹’ 用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;
}