利用随机数生成计算题,有人帮帮我吗 [急哭 ]
等级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编辑过]