#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define N 100
int suyang()
{
FILE *fp; //定义一个文件指针,用于之后对文件的操作
fp=fopen("D:\\record.txt","a+");
int scord=0;
int a,c, e,i,b,k;
int z[10]; //定义一个长度为10的数组,元素值为0-3的随机数,0-3分别对应一种运算
int jia=0,jian=0,cheng=0,chu=0;
int l=10;
srand( (unsigned)time( NULL ) ); //用于产生随机数的时间种子
while(1) //死循环,不断给数组赋值,直到满足条件后结束循环
{
for(int y=0;y<=9;y++)
{
c=rand()%4;
if(l==c) //判断本次产生的c是否与上次相同
{
y--;
continue;
}
z[y]=c;
if(c==0)
jia++;
else if(c==1)
jian++;
else if(c==2)
cheng++;
else
chu++;
l=c; //将c的值付给l,用于判断下次产生的c是否与本次相同
}
if(jia&&jian&&cheng&&chu!=0) //判断是否有运算出现的次数为0,无则结束循环,有则继续循环
{
for(int v=0;v<=9;v++)
{
}
break;
}
}
for(a=0;a<=9;a++) //产生运算
{
i=rand()%100;
b=rand()%100;
switch(z[a])
{
case 0:e=i+b;
if(e>100||e<0) //保证结果在0-100之间
{
a--; //若不满足要求,则结束本次循环,重新开始产生i和b
continue;
}
printf("%d+%d=",i,b);
fprintf(fp,"%d+%d=%d\n",i,b,e ); //将产生的运算和正确答案存入文件
break;
case 1:e=i*b;
if(e>100||e<0)
{
a--;
continue;
}
printf("%d*%d=",i,b);
fprintf(fp,"%d*%d=%d\n",i,b,e ); //将运算式及结果记录到文件中
break;
case 2:e=i-b;
if(e>100||e<0)
{
a--;
continue;
}
printf("%d-%d=",i,b);
fprintf(fp,"%d-%d=%d\n",i,b,e );
break;
case 3:e=i/b;
if(i%b!=0||e>100||e<0) //保证可以整除
{
a--;
continue;
}
printf("%d/%d=",i,b);
fprintf(fp,"%d/%d=%d\n",i,b,e );
break;
}
scanf("%d",&k);
if(k==e)
scord+=10;
fprintf(fp,"你的答案是:%d\n",k); //将用户输入的答案存入文件
}
printf("得分:%d分\n",scord);
fprintf(fp,"得分:%d分\n", scord); //将用户得分存入文件
fclose(fp);
return 0;
}
int main()
{
int i,z,d,f;
FILE *fp;
char str[N + 1];
double duration;
clock_t start,f;
}