/*小学生算数 第二种方法*/在C语言的程序中如何编写?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int question_get1();
int question_get2();
int type;
void main( void )
{
int answer,Lever;
srand( (unsigned)time( NULL ) );
out:
printf("1.一位数运算!2.两位数运算!\n");
scanf("%d",&Lever);
printf( "请选择要测试的题目种类:" );
printf( "\n1.加法\n2.减法\n3.乘法\n4.除法\n" );
scanf( "%d", &type );
while( 1 )//实现系统循环
{
int temp;
char flag;
while(Lever==1)
{
answer = question_get1();//调用一位数运算函数
printf( "请给出你的答案:\n" );
break;//要跳出此次while循环
}
while(Lever==2)
{
answer = question_get2();//调用二位数运算的函数
printf( "请给出你的答案:\n" );
break;//要跳出此次while循环
}
fflush( stdin );
scanf( "%d", &temp );//储存测试者输入的结果
while( temp!=answer )//判断结果的对错 错误时 实现循环 运算
{
printf( "\n笨蛋,you are wrong! again!\n" );
fflush( stdin );//继续运算
scanf( "%d", &temp );
}
printf( "\n天才!you are rigth! Very good!\n" );
printf( "press 1 to go on,press 2 to exit,press 0 to end!\n" );//选择菜单
fflush( stdin );
scanf( "%c", &flag );
while( flag!='1' && flag!='2'&&flag!='0' )//选择菜单判断
{
printf( "press 1 to go on,press 2 to exit,press 0 to end!\nelse no working!\n" );
fflush( stdin );
scanf( "%c", &flag );
}
if ( flag=='2' )
goto out;//回到out实现整个系统的循环
else if(flag=='0')
break;//结束本程序
}
}
int question_get1()//子函数 一位数运算
{
int a,b,c;
if( type==1 )
{
a=rand()%10;//在10以内产生随机数
b=rand()%10;//在10以内产生随机数
printf( "%d + %d = ?", a, b );
return(a+b);
}
else if( type==2 )
{
b=rand()%10;//在10以内产生随机数
c=rand()%10;//在10以内产生随机数
printf( "%d - %d = ?", b+c, b );
return(c);
}
else if( type==3 )
{
a=rand()%10;//在10以内产生随机数
b=rand()%10;//在10以内产生随机数
printf( "%d * %d = ?", a, b );
return(a*b);
}
else
{
b=rand()%10;
c=rand()%9+1;
printf( "%d / %d = ?", b*c, b );
return(c);
}
}
int question_get2()//子函数 二位数运算
{
int a,b,c;
if( type==1 )
{
a=rand()%100;//在100以内产生随机数
b=rand()%100;//在100以内产生随机数
printf( "%d + %d = ?", a, b );
return(a+b);
}
else if( type==2 )
{
b=rand()%100;//在100以内产生随机数
c=rand()%100;//在100以内产生随机数
printf( "%d - %d = ?", b+c, b );
return(c);
}
else if( type==3 )
{
a=rand()%100;//在100以内产生随机数
b=rand()%100;//在100以内产生随机数
printf( "%d * %d = ?", a, b );
return(a*b);
}
else
{
b=rand()%10;
c=rand()%10+1;
printf( "%d / %d = ? ", b*c , c );
return(b);
}
}
点击加载更多评论>>