回 帖 发 新 帖 刷新版面

主题:四则运算

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
main()
{ int j;
  printf("\t\t1:Add operation\n");
  printf("\t\t2:Subtraction\n");
  printf("\t\t3:Multiplying\n");
  printf("\t\t4:Division\n");
  printf("Please input number (1/2/3/4) to choose which operation you want to train:");
  scanf("%d",&j);
  switch(j)
  { case 1: goto loop1;break;
    case 2: goto loop2;break;
    case 3: goto loop3;break;
    case 4: goto loop4;break;
  }

loop1:{ int i,j;int k,f;
  clrscr();
  printf("\t \t");
  srand((int)time(0));
  for(i=0;i<99;i++)
  { j=1+(int)(100.0*rand()/(RAND_MAX+1.0)); }
  printf("%d",j);
  printf("\n");
  printf("\t\t");
  printf("\b+");
  for(i=0;i<99;i++)
  { k=1+(int)(100.0*rand()/(RAND_MAX+1.0));}
  printf("%d",k);
  printf("\n");
  printf("\t ---------------\n");
  if((k+j)>=100)
  { printf("\t\t\b");}
    else { printf("\t\t");}
  scanf("%d",&f);
  if(f==(k+j) )
  { printf("\twondfully, you are right !!!\n");
  }
  else
  { printf("\tSorry,the right answer is %d\n",k+j);
  }
  }
loop2:{ int i,j;int k,f;
  clrscr();
  printf("\t \t");
  srand((int)time(0));
  for(i=0;i<100;i++)
    { j=1+(int)(100.0*rand()/(RAND_MAX+1.0)); }
  if(j<=9)
    { printf("0%d",j); }
    else { printf("%d",j);}
  printf("\n");
  printf("\t\t");
  printf("\b-");
  for(i=0;i<100;i++)
    { k=1+(int)(50.0*rand()/(RAND_MAX+1.0));}
  if(k<=9)
    { printf("0%d",k); }
    else { printf("%d",k); }
  printf("\n");
  printf("\t ---------------\n");
  if((j-k)>=10) { printf("\t\t");}
    else if((j-k)<0) { printf("\t\t\b"); }
     else { printf("\t\t ");}
  scanf("%d",&f);
  if(f==(j-k) )
    { printf("\twondfully, you are right !!!\n");
    }
    else
    { printf("\tSorry,the right answer is %d\n",j-k);
    }
  }
 loop3:{ int i,j;int k,f;
  clrscr();
  printf("\t \t");
  srand((int)time(0));
  for(i=0;i<100;i++)
    { j=1+(int)(100.0*rand()/(RAND_MAX+1.0)); }
  if(j<=9)
    { printf("0%d",j); }
    else { printf("%d",j);}
  printf("\n");
  printf("\t\t");
  printf("\bX");
  for(i=0;i<100;i++)
    { k=1+(int)(100.0*rand()/(RAND_MAX+1.0));}
  if(k<=9)
    { printf("0%d",k); }
    else { printf("%d",k); }
  printf("\n");
  printf("\t ---------------\n");
  if((k*j)>=100)
    { printf("\t\t\b");}
    else { printf("\t\t");}
  scanf("%d",&f);
  if(f==(k*j) )
    { printf("\twondfully, you are right !!!\n");
    }
    else
    { printf("\tSorry,the right answer is %d\n",k*j);
    }
  }
 loop4:{ int i,j;int k,f,g;
  clrscr();
  printf("\t \t");
  srand((int)time(0));
  loop5: {for(i=1;i<100;i++)
    { j=1+(int)(100.0*rand()/(RAND_MAX+1.0)); } }
   if(j>=50) { printf("%d",j);}
     else { goto loop5;}
  printf("\n");
  printf("\t\t");
  printf("\b/");
  for(i=0;i<100;i++)
    { k=1+(int)(50.0*rand()/(RAND_MAX+1.0));}
  if(k<=9)
    { printf("0%d",k); }
    else { printf("%d",k); }
  printf("\n");
  printf("\t ---------------\n");
 if((j/k)>10) { printf("\t\t ");}
   else { printf("\t\t"); }
  scanf("%d",&f);
  printf("\t yu shu:");
  scanf("%d",&g);
  if(f==(j/k)&&g==(j%k) )
    { printf("\twondfully, you are right !!!\n");
    }
    else
    { printf("\tSorry,the right answer is %d yushu:%d\n",j/k,j%k);
    }
  }
  }

回复列表 (共3个回复)

沙发


就是为什么每个case后面的break停不住

板凳

你都跳走了,怎么回呢? 每个goto 后在做个标号吧,每个case完后,在跳回去。 有必要这么做么? 我擦

3 楼

没办法,能不能请高手说的详细点啊;虽然跳走了,那为什么case2能接着运行啊;
QQ494402043

我来回复

您尚未登录,请登录后再回复。点此登录或注册