小学生测验问题,高手帮忙解决一下!有些功能实现不了
程序代码:#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函数只能随机出减法,不能随机出加法。别的功能根本没有头绪,能不能给一点提示啊







