小学生测验问题,高手帮忙解决一下!有些功能实现不了
程序代码:
#include <stdio.h> #include <stdlib.h> /* 随机库函数 */ #include <time.h> /* 时间库函数 */ int count=0, ok=0; /* count表示回答次数, ok表示回答正确次数 */ int add(int x,int y) { int result = 0; printf("%d + %d = ",x,y); scanf("%d",&result); count++; if(result==(x+y)) return 1; else return 0; } int minus(int m,int n) { int result = 0; printf("%d - %d = ",m,n); scanf("%d",&result); count++; if(result==(m-n)) return 1; else return 0; } void print(int flag) { if(flag==1) printf("回答正确!\n"); else printf("回答错误!\n"); } void main() { int x, y, m, n, p, op, flag=0,i; srand(time(NULL));/* 随机函数初始化 */ for(i=0;i<10;i++) { p=rand()%1; if (p==1) { x=rand()%50; y=rand()%50; flag=add(x,y); print(flag); if(flag==1) ok++; } else { m=1+rand()%50; n=1+rand()%50; flag=minus(m,n); print(flag); if(flag==1) ok++; } } printf("您总共回答了%d道题,答对%d道题,总得分: %d\n",count,ok,ok*10); printf("\n"); }题目是这样的
小学生测验,面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。要求至少具有如下功能:
(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;
(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;
(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;
(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;
(5)总成绩90以上显示“SMART”, 80-90显示“GOOD”, 70-80显示“OK”, 60-70显示“PASS”,60以下“TRY AGAIN”。
提示:可以利用随机数生成函数rand()。
我写的一部分代码……
为什么rond函数只能随机出减法,不能随机出加法。别的功能根本没有头绪,能不能给一点提示啊