commit ee3fdf25c0f1473c6eaef20af27095d829be73bf Author: 2212907042@qq.com <2212907042@qq.com> Date: Thu Jan 10 16:33:44 2019 +0800 first commit diff --git a/main.c b/main.c new file mode 100644 index 0000000..87fc29c --- /dev/null +++ b/main.c @@ -0,0 +1,125 @@ +#include + +struct Student +{ + char cSchool[15]; + char cGrade[15]; + char cName[15]; +}; + +int test(); +int checknum(int a,int b); +int checkresult(int x); /*函数说明*/ + +int a=-1,b,c,x; +int k=0,grade; /*定义所需要的参数*/ + +int main() +{ + struct Student student1; + printf("****预祝测试顺利****\n\n"); + printf("学校:"); + scanf("%s",&student1.cSchool); + printf("年级:"); + scanf("%s",&student1.cGrade); + printf("姓名:"); + scanf("%s",&student1.cName); + printf("\n"); + + printf("请回答下面十道题目\n"); + + do{ + int i=test(); + if(i==-1) + { + if(grade>=90) + printf("-------SMART"); + else if(grade>=80&&grade<90) + printf("-------GOOD"); + else if(grade>=70&&grade<80) + printf("-------OK"); + else if(grade>=60&&grade<70) + printf("-------PASS"); + else + printf("-------TRY AGAIN"); + break; + } + else if(checkresult(i)==0){ + a=-1; + } + }while(k); + return 0; +} + +int test() +{ + srand((unsigned int)time(NULL)); + while(checknum(a,b)==0) /*若返回0,则重新取值;若返回1,则完成a,b取值*/ + { + a=rand()%51; /*a取值范围0~50*/ + b=rand()%51; /*b取值范围0~50*/ + c=rand()%2; /*c取值范围0~1*/ + } + k++; /*k表示第几题*/ + if(k==11) + { + printf("\n所有题目已答完,你的成绩:%d分",grade); + return -1; + } + else if(c==0) + { + printf("第%d题:%d+%d=",k,a,b); + return a+b; + } + else if(c==1) + { + printf("第%d题:%d-%d=",k,a,b); + return a-b; + } + return -1; +} + +int checknum(int a,int b) /*检查相加或相减的两个数是否满足要求*/ +{ + if(a>50||b>50||a<0||b<0||(a+b)>50||(a-b)<0) + return 0; + else + return 1; + } + + int checkresult(int result) + { + int i; + for(i=1;i<4;i++) + { + scanf("%d", &x); + if (x!=result) + { + if (i==3) + { + if (c==0){ + printf("三次回答错误,正确答案是%d\n",a+b); + } + else { + printf("三次回答错误,正确答案是%d\n",a-b); + } + return 0; + } + printf("回答错误,请再次输入:"); + } + else{ + switch(i){ + case 1:grade+=10; + break; + case 2:grade+=7; + break; + case 3:grade+=5; + break; + default:grade+=0; + break; + } + return 0; + } + } + return 0; + }