二柱子高级随机运算(带真分数)

 本次作业主要应用switch和if选择结构,应用rand函数产生不同的随机数列。

存在的问题:只能一个一个的答,无法在完成全部四则运算以后再显示答案,在接下来我努力攻克。

用时6小时。(2018/10/6 16:00-18:00&20:00-23:00)

#include<stdio.h>

#include<stdlib.h>
#include<time.h>
int main()
{
 int x,y,z,c,t,f,m,n,q,result;
 srand((unsigned)time( NULL ) ); //初始化随机数发生器,使得每次运行生成的随机数不同
 printf("*****二柱子的计算题*****\n");
 printf("请输入输出的题的道数:");
  scanf("%d",&q);
  printf("********************\n1.整数四则运算!\n2.真分数的四则运算!\n********************\n");
  scanf("%d",&f);
   for(int i=0;i<q;i++)
 switch(f)
  {case 1:
 {
  x=rand()%100;
  y=rand()%100;
  z=rand()%4;
  switch(z)
  {
  case 0:
   printf("%d+%d=\n",x,y);
   result=x+y;
   break;
  case 1:
   if(x<y)
   {
    t=x;
    x=y;
    y=t;
   }
   printf("%d-%d=\n",x,y);
   result=x-y;
   break;
  case 2:
   printf("%d×%d=\n",x,y);
    result=x*y;
   break;
  case 3:
   if(y!=0)
   {
   printf("%d÷%d=\n",x,y);
    result=x/y;
   }
   else
   {
    i=i-1;
   }
   break;
  default:
   printf("超出测试范围\n");
   break;
  }
scanf("%d", &c); //输入答案
if(c == result) //与正确答案一致
{
printf("Right\n\n");
}
else
{
printf("Wrong\n\n"); //错
}
 };break;
  case 2:
   {
     x=rand()%100;
     y=rand()%100;
  m=rand()%100;
  n=rand()%100;
     z=rand()%4; 
  if(y!=0&&n!=0)
   {if(x<y)
   {
    t=x;
    x=y;
    y=t;
   }
     if(m<n)
   {
    t=m;
    m=n;
    n=t;
   }
  switch(z)
  {
  case 0:
   printf("%d/%d+%d/%d=\n",x,y,m,n);
   result=x/y+m/n;
   break;
  case 1:
   printf("%d/%d-%d/%d=\n",x,y,m,n);
    result=x/y-m/n;
   break;
  case 2:
   printf("%d/%d×%d/%d=\n",x,y,m,n);
    result=(x/y)*(m/n);
   break;
  case 3:
   printf("%d/%d÷%d/%d=\n",x,y,m,n);
    result=(x/y)/(m/n);
   break;
  default:
   printf("超出测试范围\n");}}
    else
    printf("分母为0不是分数!");
   scanf("%d", &c); //输入答案
if(c == result) //与正确答案一致
{
printf("Right\n\n");
}
else
{
printf("Wrong\n\n"); //错
}
   };break;
 printf("endl.\n");
 return 0;
}
   }

猜你喜欢

转载自www.cnblogs.com/huangrb/p/9748931.html