首页 > 编程语言 > 详细

C语言编程—自动生成四则运算

时间:2015-03-26 14:32:40      阅读:312      评论:0      收藏:0      [点我收藏+]
#include<stdio.h>
#include<time.h>
main()
{
    int a,b,i,j,k,l;
    double c,d,e,f;
    while (1)
    {
        srand((int)time(0));
        //使用srand(time(0))来使用当前时间使随机数发生器随机化,这样就可以保证每两次运行时可以得到不同的随机数序列(只要两次运行的间隔超过1秒)
        printf("1:整数 2:小数 0:退出");
        printf("\n");
        scanf("%d",&j);
        switch(j)
        {
        case 1:
             printf("请选择: 1:加法运算 2:减法运算 3:乘法运算 4:除法运算\n");
             scanf("%d",&k);
             switch(k)
             {
             case 1:
                  for (i=0;i<30;i++)
                  {
                     a=rand()%100+1;
                     b=rand()%100+1;
                     printf("%d+%d=\t\t",a,b);
                  }
                    printf("\n");
                  break;
             case 2:
                 for (i=0;i<30;i++)
                 {
                    a=rand()%100+1;
                    b=rand()%100+1;
                    printf("%d-%d=\t\t",a,b);
                 }
                 printf("\n");
                 break;
             case 3:
                 for (i=0;i<30;i++)
                 {
                    a=rand()%100+1;
                    b=rand()%100+1;
                    printf("%d*%d=\t\t",a,b);
                 }
                 printf("\n");
                 break;
             case 4:
                 for (i=0;i<30;i++)
                 {
                      a=rand()%100+1;
                    b=rand()%100+1;
                    printf("%d÷%d=\t\t",a,b);
                 } 
                 printf("\n");
                 break;
             }
             break;
      case 2:
          printf("请选择: 1:加法运算 2:减法运算 3:乘法运算 4:除法运算\n");
          scanf("%d",&l);
          switch(l)
          {
          case 1:
              for (i=0;i<30;i++)
                  {
                     c=rand()%100+1;
                     d=rand()%100+1;
                     e=(rand()%100)*0.01;
                     f=(rand()%100)*0.01;
                     printf("%2.2f+%2.2f=\t",c+e,d+f);
                  }
                    printf("\n");
                  break;
          case 2:
              for (i=0;i<30;i++)
                  {
                     c=rand()%100+1;
                     d=rand()%100+1;
                     e=(rand()%100)*0.01;
                     f=(rand()%100)*0.01;
                     printf("%2.2f-%2.2f=\t",c+e,d+f);
                  }
                    printf("\n");
                  break;
          case 3:
              for (i=0;i<30;i++)
                  {
                     c=rand()%100+1;
                     d=rand()%100+1;
                     e=(rand()%100)*0.01;
                     f=(rand()%100)*0.01;
                     printf("%2.2f*%2.2f=\t",c+e,d+f);
                  }
                    printf("\n");
                  break;
          case 4:
              for (i=0;i<30;i++)
                  {
                     c=rand()%100+1;
                     d=rand()%100+1;
                     e=(rand()%100)*0.01;
                     f=(rand()%100)*0.01;
                     printf("%2.2f/%2.2f=\t",c+e,d+f);
                  }
                    printf("\n");
                  break;
          }
          break;
      case 0:
              exit(0);
              break;
        }
    }
}

感想:这个程序写出来感觉不难,但是如果要更好的话,还要继续努力。通过写这个程序,我学习到了语句:srand((int)time(0));。这条语句可以把当前时间使随机数发生器随机化,这样就可以保证每两次运行时可以得到不同的随机数序列(只要两次运行的间隔超过1秒),要是没有的话,会发现每一次运行的结果都一样,即“不是随机的随机”,显然不是我们想要的。四则运算题目,需要产生随机数,那么问题来了,产生的是整数还是小数?想产生哪个区间的整数,就用rand()对几求余加1,例如想在1到100之间取整,那么可以rand()%100+1。还有,小数部分,首先要想到的是小数点后几位,我总结出了通式:(rand()%10x)*10-x。本程序还有很多优化的地方,有望继续加油!

C语言编程—自动生成四则运算

原文:http://www.cnblogs.com/yuhancheng/p/4368410.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!