设计小学生四则运算测试程序,要求随机产生10题四则运算题,答完后给出得分。用C语言做,有人会吗??很急

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计小学生四则运算测试程序,要求随机产生10题四则运算题,答完后给出得分。用C语言做,有人会吗??很急相关的知识,希望对你有一定的参考价值。

设计小学生四则运算测试程序,要求随机产生10题四则运算题,答完后给出得分。用C语言做,有人会吗??很急 很级 求高手 高手!!!

#include<stdlib.h>
#include<stdio.h>
#include<conio.h>

void main()

int a[10],b[10],d[10],c[10],num=0,result,add=0;
float val;
char fa[5]='+','-','*','/';

srand((unsigned)time(NULL));
/* 出10道题 */
while(1)

d[num]=abs(rand())%4;
while(1)

c[num]=-1;
a[num]=abs(rand())%100;
b[num]=abs(rand())%100;
if(d[num]==0) c[num]=a[num]+b[num];
else if(d[num]==1) c[num]=a[num]-b[num];
else if(d[num]==2) c[num]=a[num]*b[num];
else if(d[num]==3)

if(b[num]>0)val=1.0*a[num]/b[num];

if(d[num]<=2)

if(c[num]>=0 && c[num]<=100) break;

else

if(a[num]==int(val)*b[num])
c[num]=val; break;


num++;
if(num==10) break;

/* 回答 */
num=0;
while(1)

printf("%d %c %d= ",a[num],fa[d[num]],b[num]);
scanf("%d",&result);
if(result==c[num])

printf("回答正确!\n");
add+=10;

else
printf("错误,正确答案: %d\n",c[num]);
num++;
if(num==10) break;

printf("\n得分:%d\n",add);
getch();
参考技术A 上一个回答的程序运行不了唉,我编的,试试看这个。

#include<stdlib.h>
#include<stdio.h>
#include<conio.h>

void main()

int a,b,d,c,m,n,add=0,i=10;
srand(time(0));
while(i!=0)
d=rand()%4;
a=rand()%100;
b=rand()%100;
switch(d)
case 0:printf("%d+%d=",a,b);n=a+b;break;
case 1:printf("%d-%d=",a,b);n=a-b;break;
case 2:printf("%d*%d=",a,b);n=a*b;break;
case 3:
if(b==0) break;
else printf("%d/%d=",a,b);n=a/b;break;


scanf("%d",&m);
if(m==n)
add=add+1;
printf("\n");
i--;

printf("\n");
printf("The result is %d",10*add);
getch();

修改随机产生300道四则运算题(限制:小学水平)

根据程序的功能以及大佬的指教,修改了部分代码,上博中的问题已经成功解决。

修改点:

1.将从键盘获取标识符flag改为利用随机数机制随机产生,随机产生的标识符flag大于等于0,小于4。

2.将产生随机标识符放在循环内部。上次的标识符放在循环之外,这是上次设计的缺陷,导致了一次运行只能产生一种类型的运算题。

import java.util.*;

public class A {
public static void main(String[] args) {

int sum=0;
int sub=0;
int mult=0;
float div=0;
for(int j=0;j<300;j++){
Random ran=new Random();
//产生随机的标识符flag(标识符flag大于等于0,小于4)
int flag = ran.nextInt(4);
//生成两个随机数
int a=ran.nextInt(100);
int b=ran.nextInt(100);
System.out.println("产生两个随机整数:"+a+","+b);
//根据标识符确定执行何种运算
switch(flag){
case 0:{ sum=a+b;
System.out.println("sum="+sum);
break;}
case 1:{ if(a>b) sub=a-b; //运算结果不能为负
else sub=b-a;
System.out.println("sub="+sub);
break;}
case 2:{ mult=a*b;
System.out.println("mult="+mult);
break;}
case 3:{ if(b!=0) div=(float)a/(float)b; //两个数都为整数,结果也会为整数,除不进的全部为0,需要强制转换为float型
else System.out.println("除数为零,无法进行除法运算!");
System.out.println("div="+div);
break;}
}
}
}

}

功能是实现了,如果有更好的设计方法可以使代码变得更简洁,还是请多多指教。


































以上是关于设计小学生四则运算测试程序,要求随机产生10题四则运算题,答完后给出得分。用C语言做,有人会吗??很急的主要内容,如果未能解决你的问题,请参考以下文章

小学二年级四则运算题

Java编写一个随机产生小学生四则运算题30道

2016012069小学四则运算练习软件项目报告

小学生四则运算出题系统——计应193许颖然

2016012082+小学四则运算练习软件项目报告

四则运算个人工作流程,计应193,第三组,刘晨龙