利用随机数生成计算题,有人帮帮我吗 [急哭 ]
等级2那片儿是有什么问题嘛,为什么随即产出的第一位数sum1总是0呢?太巧了吧


程序代码:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
int level; //选择等级
printf("\n\t\t===============你已进入到测试环节================");
printf("\n\t\t\t **本次测试的等级说明如下**\n");
printf("\t 输入等级(1--8):一到两位数的加法为1级;\n");
printf("\t 一到两位数的减法为2级;\n");
printf("\t 一到两位数的乘法为3级;\n");
printf("\t 一到两位数的除法为4级;\n");
printf("\t 三到五位数的加法为5级;\n");
printf("\t 三到五位数的减法为6级;\n");
printf("\t 三到五位数的乘法为7级;\n");
printf("\t 三到五位数的除法为8级;\n");
printf("\n请输入等级:\t");
scanf("%d",&level);
switch(level)
{
case 1: Level_1(); break;
case 2: Level_2(); break;
// case 3: Level_3(); break;
// case 4: Level_4(); break;
// case 5: Level_5(); break;
// case 6: Level_6(); break;
// case 7: Level_7(); break;
// case 8: Level_8(); break;
default: break;
}
return 0;
}
//1级
Level_1()
{
int i,j;
int m,num[2]; //m是每次要做的题目数,num[]是产生的随机数
long sum=0,result; //sum是机器的结果,result是学生自己输入的答案
printf("\n\n请输入你想做的题目数 m=");
scanf("%d",&m);
srand((unsigned) time (NULL));
for(i=0;i<m;i++) //产生m个题目
{
sum=0;
for(j=0;j<2;j++) //产生两个随机数
{
num[j]=rand()%100; //随即得到一个0到99的数
sum+=num[j];
}
printf("\n你要计算的题目为 %d+%d=\n",num[0],num[1]);
printf("\n请输入你的答案:\t");
scanf("%ld",&result);
if(result==sum)
{
printf("\n你的第%d个测试题难度为1级,正确答案为%ld,你的计算结果正确!\n",i,sum);
}
else
{
printf("\n你的第%d个测试题难度为1级,正确答案为%ld,你的计算结果错误!\n",i,sum);
}
}
}
//2级
Level_2()
{
int i,j;
int m,num[2]; //m是每次要做的题目数,num[]是产生的随机数
long sum1,sum2,sum,result; //sum是机器的结果,result是学生自己输入的答案
printf("\n\n请输入你想做的题目数 m=");
scanf("%d",&m);
srand((unsigned) time (NULL));
for(i=0;i<m;i++) //产生m个题目
{
sum=0;
sum1=0;
sum2=0;
for(j=0;j<2;j++) //产生两个随机数
{
num[j]=rand()%100; //随即得到一个0到99的数
sum2=num[j];
if(j=1)
{
break;
}
sum1=sum2;
sum2=0;
}
sum=sum1-sum2;
printf("\n你要计算的题目为 %ld-%ld=\n",sum1,sum2);
printf("\n请输入你的答案:\t");
scanf("%ld",&result);
if(result==sum)
{
printf("\n你的第%d个测试题难度为1级,正确答案为%ld,你的计算结果正确!\n",i,sum);
}
else
{
printf("\n你的第%d个测试题难度为1级,正确答案为%ld,你的计算结果错误!\n",i,sum);
}
}
}
[此贴子已经被作者于2019-3-5 10:10编辑过]









