• 20道简单加减法随机生成程序扩展版体会


          看了别人的博客感觉自己还是不够认真,认识到了他们的努力,这个平台应该是记录自己成长的地方,总结自己的失败与错误,得到正确结果中间的过程才是重要的,这中间让我学到了很多之前只听课体会不到的东西。

          这次的作业题目是在之前的程序上添加一些功能,回来尝试了一番,感觉之前写的函数有些简单了扩展起来需要改写很多东西,基本上等于重新编程另外一个程序,感觉到了自己的不足。然后看了别人的程序,添加功能很方便,然后尝试改写自己的函数。这次代码加入了一部分简单的要求,加入括号的需要在研究一下。。乘除法按照之前的flag随机取值可以加入,数值范围通过:1.减法和除法使被减数(被除数)与减数(除数)互换;2.乘法是把结果大于500的乘法算式中乘数大于20的除以5,把结果控制到500以内更加贴近小学题目。

    除法这个要求得出小数点并保留,把之前的int类型改成了float类型,并在输出位置保留2位小数,运行之后显示的很好,也没看出问题来。突然想到了输入的问题,试着输入一个正确结果,程序就死机了。。

                case 4:
                        {
                            if(a<b)
                                {
                                    t=a;
                                    a=b;
                                    b=t;
                                }
                            printf("%d %.0f/%.0f= 
    ",n,a,b);
                            x[n]=a/b;/*这里有错误!*/
                            n++;
                        }break;
                    }
        
                }
        printf("输入结果!
    ");
        for(n=0;n<30;n++)
        {
            printf("%d, %.2f    ",n,x[n]);
        }
        printf("
    ");
        for(n=0;n<30;n++)
        {
            scanf("%.2f",&y[n]);

     问题出在电脑做运算的时候没有保留,在网上百度了一下做出修改后的程序代码

    // 1.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include "stdlib.h"
    #include "time.h"
    
    #define N 30
    int *func()
    {
        static float x[N],y[N];
        int n=0,flag,t;
        float a,b;
        srand((unsigned)time(NULL));
        while(n<N)
        {
            a=rand()%99+1;
            b=rand()%99+1;
            flag=rand()%4+1;
            switch(flag){
            case 1:
                {
                    printf("%d %.0f+%.0f= ",n,a,b);
                    x[n]=a+b;
                    printf("%.0f
    ",x[n]);
                    n++;
                }break;
            case 2:
                {
                    if(a<b)
                    {
                        t=a;
                        a=b;
                        b=t;
                    }
                        printf("%d %.0f-%.0f= ",n,a,b);
                        x[n]=a-b;
                        printf("%.0f
    ",x[n]);
                        n++;
                    }break;
                    case 3:
                        {
                            if(a*b>=500)
                            {
                                if(a>20)
                                {
                                    a=a/5;
                                }
                                if(b>20)
                                {
                                    b=b/5;
                                }
                            }
                            else
                            {
                                printf("%d %.0f*%.0f= ",n,a,b);
                                x[n]=float(a*b*1)/1;
                                printf("%.0f
    ",x[n]);
                                n++;                    
                            }
                        }break;
                    case 4:
                        {
                            if(a<b)
                                {
                                    t=a;
                                    a=b;
                                    b=t;
                                }
                            printf("%d %.0f/%.0f= ",n,a,b);
                            x[n]=float((int)(a/b*100))/100;/*这里改正之后*/
                            printf("%.2f
    ",x[n]);
                            n++;
                        }break;
                    }
        
                }
        printf("输入结果!
    ");
        for(n=0;n<N;n++)
        {
            scanf("%f",&y[n]);
            if(y[n]==x[n])
            {
                printf("正确!
    ");
            }        
            else
            {
                printf("错误!正确结果为%.2f
    ",x[n]);    
            }
        }
        return 0;
    }
    
    int main(int argc, char* argv[])
    {
        func();
        return 0;
    }

    剩下最难改的加括号的多项算式,准备用C++改一下,然后学一下界面。

  • 相关阅读:
    Linux内存管理和应用
    Linux之IRQ domain
    Sass的的使用三
    Sass的的使用二
    Sass的的使用一
    sass的使用
    jQuery核心语法
    jQuery动画处理
    jQuery事件总结
    jQuery 的DOM操作
  • 原文地址:https://www.cnblogs.com/suisx/p/5263145.html
Copyright © 2020-2023  润新知