(1)任意生成10道题,每道题有两个运算数,且都在1到100间。
(2)在所抽选的题目中,每次都会需要不相同的函数的加减乘除,计算机随机抽取其中的运算符,进行计算。
(3)每次的输入都必须要指出正确的结果,并且要准确判断所输入结果的正确性,可以迅速打分。
(4)设计的分数为100,所以,在这个程序中,要有十个函数要输出,十个答案需要学生输入,每道题设计分数为10分,即对一道题就加10分,不正确的就不加分。
#include#include#define N 10
#define M 100
void main()
{ inta[N],c[N],m[N],p[N],ljx[M],lh[M],i,j,k,h,sco=0;
char b[N],n[]={'+','-','*','/'};
ljx[0]=1;lh[0]=1;
for(i=1;i<M;i++) //对数组ljx[100]和lh[100]赋值
{ ljx[i]=ljx[i-1]+1;
lh[i]=lh[i-1]+1;
}
for(i=0;i<N;i++)
{ j=rand()%4; //从0~3中随机取一个数赋值给j
k=rand()%M; //从0~99中随机取一个数赋值给k
h=rand()%M; //从0~99中随机取一个数赋值给h
a[i]=ljx[k];
b[i]=n[j];
c[i]=lh[h];
switch(b[i])
{
case '+': p[i]=a[i]+c[i];break;
case '-': p[i]=a[i]-c[i];break;
case '*': p[i]=a[i]*c[i];break;
case '/': p[i]=a[i]/c[i];break;
}
printf("%d%c%d",a[i],b[i],c[i]); //输出题目
printf("\n");
printf("请直接输入计算结果(输完按enter键):"); //提示输答案
scanf("%d",&m[i]);
if(m[i]==p[i]) sco=sco+10;
}
printf("\n恭喜你得了:%d分\n\n",sco);
for(i=0;i<N;i++)
{ printf("原题:%d%c%d",a[i],b[i],c[i]); //输出原题
printf(" 你的答案:%d",m[i]); //输出用户答案
printf(" 正确答案:%d\n\n",p[i]); //输出正确答案
}
}
#define M 100
void main()
{ float a[N],c[N],m[N],p[N],ljx[M],lh[M],i,j,k,h,sco=0;
char b[N],n[]={'+','-','*','/'};
ljx[0]=1;lh[0]=1;
for(i=1;i<M;i++) //对数组ljx[100]和lh[100]赋值
{ ljx[i]=ljx[i-1]+1;
lh[i]=lh[i-1]+1;
}
for(i=0;i<N;i++)
{ j=rand()%4; //从0~3中随机取一个数赋值给j
k=rand()%M; //从0~99中随机取一个数赋值给k
h=rand()%M; //从0~99中随机取一个数赋值给h
a[i]=ljx[k];
b[i]=n[j];
c[i]=lh[h];
switch(b[i])
{
case '+': p[i]=a[i]+c[i];break;
case '-': p[i]=a[i]-c[i];break;
case '*': p[i]=a[i]*c[i];break;
case '/': p[i]=a[i]/c[i];break;
}
printf("%.1f%c%.1f",a[i],b[i],c[i]); //输出题目
printf("\n");
printf("请直接输入计算结果(输完按enter键):"); //提示输答案
scanf("%.1f",&m[i]);
if(m[i]==p[i]) sco=sco+10;
}
printf("\n恭喜你得了:%.1f分\n\n",sco);
for(i=0;i<N;i++)
{ printf("原题:%.1f%c%.1f",a[i],b[i],c[i]); //输出原题
printf(" 你的答案:%.1f",m[i]); //输出用户答案
printf(" 正确答案:%.1f\n\n",p[i]); //输出正确答案
}
}追问
有一个错误啊,运行不了。
追答#include<stdio.h>#define N 10
#define M 100
void main()
{
float a[N],c[N],m[N],p[N],ljx[M],lh[M];
int i,j,k,h,sco=0;
char b[N],n[]={'+','-','*','/'};
ljx[0]=1.0;lh[0]=1.0;
for(i=1;i<M;i++)
{ ljx[i]=ljx[i-1]+1;
lh[i]=lh[i-1]+1;
} for(i=0;i<N;i++)
{
j=rand()%4;
k=rand()%M;
h=rand()%M;
a[i]=ljx[k];
b[i]=n[j];
c[i]=lh[h];
switch(b[i])
{
case '+': p[i]=a[i]+c[i];break;
case '-': p[i]=a[i]-c[i];break;
case '*': p[i]=a[i]*c[i];break;
case '/': p[i]=a[i]/c[i];break;
}
printf("%.1f%c%.1f",a[i],b[i],c[i]);
printf("\n");
printf("请直接输入计算结果(输完按enter键):"); //提示输答案
fflush(stdin);
scanf("%.1f",&m[i]);
fflush(stdin);
if(m[i]==p[i])
sco=sco+10;
}
printf("\n恭喜你得了:%.1f分\n\n",sco);
for(i=0;i<N;i++)
{ printf("原题:%.1f%c%.1f",a[i],b[i],c[i]);
printf(" 你的答案:%.1f",m[i]);
printf(" 正确答案:%.1f\n\n",p[i]);
}
}追问
运行不了。
#include
#include //加上这个头文件
int a, b;
float f;
a = 1;
b = 2;
f = (float) a / b;追问
我想问一下,在哪里加哦?你能不能把完整的,修改后的代码发给我哟。