优质解答
#include
#include
#include
#include
void main()
{
int num=0,add=0; /* 答题数,得分 */
int score[3]={10,7,5};
char str[20],str1[10][20];
while(1)
{
int a=0,b=0,d=0,c=0,k=0,i=0,j=-1,result;
char sf[2]={'+','-'};
/* 出题 */
while(1)
{
a=rand()%51;
b=rand()%51;
d=rand()%2;
if(d==0)c=a+b;
else c=a-b;
if(c>=0 && c<=50)
{
sprintf(str,"%d %c %d = ",a,sf[d],b);
strcpy(str1[num],str);
if(num==0) break;
j=-1;
for(i=0; i {
if(strcmp(str,str1[i])==0)/* 如果相同重新出题 */
{ j=1;break;}
}
if(j<0)
break;
}
}
printf("%s",str);
/* 回答 */
printf("输入计算结果:");
while(1)
{
scanf("%d",&result);
k++;
if(result==c)
{
printf("回答正确!");
add+=score[k-1];
break;
}
else if(k<3)
{
printf("错误,请重新回答:");
}
else
break;
}
num++;
if(num==10)break;
}
printf("得分:%d",add);
getch();
}
#include
#include
#include
#include
void main()
{
int num=0,add=0; /* 答题数,得分 */
int score[3]={10,7,5};
char str[20],str1[10][20];
while(1)
{
int a=0,b=0,d=0,c=0,k=0,i=0,j=-1,result;
char sf[2]={'+','-'};
/* 出题 */
while(1)
{
a=rand()%51;
b=rand()%51;
d=rand()%2;
if(d==0)c=a+b;
else c=a-b;
if(c>=0 && c<=50)
{
sprintf(str,"%d %c %d = ",a,sf[d],b);
strcpy(str1[num],str);
if(num==0) break;
j=-1;
for(i=0; i {
if(strcmp(str,str1[i])==0)/* 如果相同重新出题 */
{ j=1;break;}
}
if(j<0)
break;
}
}
printf("%s",str);
/* 回答 */
printf("输入计算结果:");
while(1)
{
scanf("%d",&result);
k++;
if(result==c)
{
printf("回答正确!");
add+=score[k-1];
break;
}
else if(k<3)
{
printf("错误,请重新回答:");
}
else
break;
}
num++;
if(num==10)break;
}
printf("得分:%d",add);
getch();
}