实验3-2

#include<stdio.h>
#include <stdlib.h>
#include <time.h>
int time2();
main()
{
 int a,b,c,n,u,i,e=0;
 int sum2=1;
 int sum=0;
 float sum3=0;
 float answer2;
 int resultTrue=0;
 int answer;
 int time=0;
 char op,op2;
 do//产生随机数
 {
  a=rand()%100+1;
  b=rand()%100+1;
  c=rand()%100+1;
  n=rand()%4+1;
  u=rand()%4+1;
  e=rand()%10+1;
  switch(n)
  {
  case 1://含有一个运算符
   {
       switch(u%4)//产生运算符
    {
         case 0:
       {
         op='+';
         break;
       }
         case 1:
       {
        op='-';
         break;
       }
         case 2:
       {
          op='*';
       break;
       }
         case 3:
       {
       op='/';
       break;
       }
    }
    printf("%d%c%d=\n",a,op,b);//打印
       switch(op)//通过运算符计算答案
     {
          case '+':
        {
            resultTrue=a+b;
             break;
        }
          case '-':
        {
        resultTrue=a-b;
        break;
        }
          case '*':
        {
        resultTrue=a*b;
        break;
        }
          case '/':
        {
        sum3=(float)a/b;
  printf("请输入正确答案(时间为两分钟):");
  scanf("%d",&answer2);
  if(sum3==answer2)
  {
   printf("答案正确\n");
  }
  else
  {
   printf("答案错误\n");
   printf("正确答案为%f\n",sum3);
  }
        break;
        }
     }
     while(time<121)
     {
      printf("请输入正确答案(时间为两分钟):");
      scanf("%d",&answer);
	  time=time2();
        if(time==120)
  {
         printf("时间到,无法答题\n");
         time=0;
         break;
  }
         if(time<120)
   {
           if(answer==resultTrue)
    {
            printf("答案正确\n");
         printf("答题时间为%d\n",time);
         time=0;
            break;
     }
            else
   {
              printf("答案错误\n");
           printf("答案为%d\n",resultTrue);
              break;
   }
   }
  }
   }
   case 2://产生两个运算符
   {
    switch(u%4)//第一个运算符产生
    {
        case 0:
      {
             op='+';
              break;
      }
              case 1:
      {
             op='-';
             break;
      }
              case 2:
      {
            op='*';
            break;
      }
              case 3:
      {
            op='/';
            break;
      }
    }
    switch(u%4)//第二运算符产生
    {
      case 0:
       {
                 op2='+';
                 break;
       }
                  case 1:
       {
                op2='-';
                break;
       }
                  case 2:
       {
                op2='*';
                break;
       }
                  case 3:
       {
                op2='/';
                break;
       }
    }
        printf("%d%c%d%c%d=\n",a,op,b,op,c);//打印
    switch(op)//计算答案先通过第一个运算符计算
    {
        case '+':
      {
          sum=a+b;
          break;
      }
        case '-':
      {
      sum=a-b;
      break;
      }
        case '*':
      {
       sum=a*b;
       break;
      }
       case '/':
     {
      sum3=(float)a/b;
      break;
     }
    }
     switch(op2)//然后再根据第二运算符计算
     {
            case '+':
       {
              sum=sum+c;
              break;
       }
            case '-':
       {
           sum=sum-c;
           break;
       }
            case '*':
       {
          sum=sum*c;
          break;
       }
            case '/':
       {
           sum3=(float)sum3/c;
  printf("请输入正确答案(时间为两分钟):");
  scanf("%d",&answer2);
  time=time2();
  if(sum3==answer2)
  {
   printf("答案正确\n");
  }
  else
  {
   printf("答案错误\n");
   printf("正确答案为%f\n",sum3);
  }
           break;
       }
     }
     while(time<123)//时间设置
     {
        printf("请输入正确答案(时间为两分钟):");
        scanf("%d",&answer);
        if(time==120)
  {
          printf("时间到,无法答题\n");
          time=0;
          break;
  }
        if(time<120)
  { 
         if(answer==sum)
   {
          printf("答案正确\n");
       printf("你得答题时间为%d\n",time);
       time=0;
          break;
   }
          else
    {
           printf("答案错误\n");
        printf("答案为%d\n",sum);
           break;
    }
  }
  }
   }
     case 3:
    {
     printf("请输入%d!=",e);
     scanf("%d",&answer);
	 time=time2();
     for(i=1;i<=e;i++)
     {
      sum2=sum2*i;
     }
     while(time<121)
     {
      if(time==120)
      {
       time=0;
       printf("已到时间\n");
       break;
      }
      if(time<120)
      {
       if(answer==sum2)
       {
        printf("答案正确\n");
        printf("用时为%d\n",time);
        sum2=1;
        break;
       }
       else
       {
        printf("答案错误\n");
        printf("答案为%d\n",sum2);
        sum2=1;
        break;
       }
      }
     }
    }
   }
   }while(1);
   }
   int time2()
   {
	   int time=0;
	   int i;
	   int n;
	   printf("0为退出\n");
	  for(i=0;i<121;i++)
	  {
		  scanf("%d",&n);
		  if(n==0){
			 break;
		  }
		  time++;
	  }
	  return time;
	  }

此程序我们已经成功的完成老师的提出的基本目标,还有扩展中整数的阶乘,负数的显示和分数的显示,但是始终不知如何实现时间的显示,我们尝试运用函数的办法来显示时间,但是失败了。本次程序我负责的两个运算符的运算,结对的负责一个运算符的运算。我们都是通过随机数来选择运算符,然后再通过运算符的判断来进行运算。

结对博客:www.cnblogs.com/201306114356cx/,56陈曦

本次总结,此次程序让我们懂得了合作的重要性,合作可以减少一个人的负担并且可以使工作效率加快,而且还能使别人学习到他们不会的东西,让我们彼此成长。

posted on 2015-04-07 17:49  57杨家安  阅读(199)  评论(2编辑  收藏  举报