zoukankan      html  css  js  c++  java
  • 四则运算1.0

    题目要求:编写一个能自动生成自定义题目数的小学四则运算。要求能支持真分数

    思索过程:我对题目大致分析,将一个简单的四则运算分解成一个:随机数+简单运算符+随机数+=的格式。要首先生成随机数;然后随机生成一个符号,这样第二个数也可随机生成;最后就可以利用简单的循环来输出所需题目。至于真分数,是分子比分母小的数,我将一个真分数拆解,得到两个整数相除的格式。然后比较分子分母的大小,将较大的数始终放在分母的位置。

    设计思路:利用rand()生成随机数,难点在于如何生成随机符号,既然能生成随机数,那是否可以利用这个数来生成随机符号呢?显然可以,a=rand()%4,通过对a的判断,输出相应的符号。

    源代码:

    #include<stdio.h>
    #include<stdlib.h>
    #include <time.h>
    #define N g
    main()
    {
        int a,b,k,i,n, c,d,e,f,g;
        do{
        printf("
    请输入题目数量: ");
    scanf("%d",&g);
        printf("
    请输入数字类型(1.整数 2.真分数) -1为退出程序: ");
    scanf("%d",&n);
    
        switch(n)
        {
        case 1:
        {
    
        for(i=0;i<N;i++)
        {
        a=rand()%100+1;
        b=rand()%100+1;
        k=rand()%4+1;
        printf("%d",a);
        switch(k)
        {
        case 1:printf("+");break;
        case 2:printf("-");break;
        case 3:printf("*");break;
        case 4:printf("/");break;
        }
        printf("%d=		",b);
        }
        break;
        }
        break;
        case 2:
        {
    for(i=0;i<N;i++)
        {
        e=rand()%100+1;
        f=rand()%100+1;
        k=rand()%4+1;
        if ( e>=f)
            printf("%d/%d",f,e);
        else
            printf("%d/%d",e,f);
        switch(k)
        {
        case 1:printf("+");break;
        case 2:printf("-");break;
        case 3:printf("*");break;
        case 4:printf("/");break;
        }
        c=rand()%100+1;
        d=rand()%100+1;
        if ( c>=d)
            printf("%d/%d=		",d,c);
        else
            printf("%d/%d=		",c,d);
        }
        break;
        }
        break;
        }
        }while(n!=-1);
    }
    复制代码

    运行结果:

     

    遇到的问题

         本程序在刚开始调试时有许多错误,出现过不能运行、不能随机出现四则运算、不会输出正确结果、选择乘法却出现减法等等问题。耗费时间最多是在于运用fprintf函数上,之前没使用过用的时候就抓麻了。在生成随机数的时侯最开始忘记使用srand函数,导致出的题目每次都是一样的也就是伪随机数,最后百度上查到原因和解决方法才改好。

         

           

           

        

    总结

          第一次写代码还是十分生疏,在程序时必须要细心,编译出错后必须逐个错误去改正,不能输错一个字符标点,在修改时要有耐心,否则修改之后还会有新的错误。

  • 相关阅读:
    [Canvas]英雄可以射箭了
    [Canvas]人物型英雄出现(前作仅为箭头)
    day33_Spring学习回顾_01
    day33_Spring学习笔记_01
    MyEclipse中,当我们写一个类实现一个接口时,会自动生成重写该接口的方法,但是,方法的参数提示不够好,是什么原因导致的呢?该如何解决呢?
    使用Junit测试一个 spring静态工厂实例化bean 的例子,所有代码都没有问题,但是出现java.lang.IllegalArgumentException异常
    MyEclipse中如何变换查看项目文件夹
    实战网卡bond
    Centos7上使用官方YUM源安装Mysql
    CentOS 7上安装WordPress详细步骤
  • 原文地址:https://www.cnblogs.com/xilei123/p/10111586.html
Copyright © 2011-2022 走看看