位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

/*小学生算数 第二种方法*/在C语言的程序中如何编写?

提问人:杨紫红发布时间:2020-11-17

#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);

      }  

 }

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部