• 四则运算01


        程序设计思路:

        题目中要求四则运算程序能够支持真分数运算,因此我先随机生成60个随机数,分别用数组A和数组B来保存,如果A[i]>B[i],则程序生成的是整数运算,如果A[i]<B[i],则程序生成的都是真分数运算。对于随机数的生成,采用了随机函数,为了保证真分数运算得到的分式都是最简的,在程序我默认分母为100,随机数是小于100的数,通过求最大公约数函数以化简真分数,的到其最简单的形式。

        程序源代码:

    //Arithmetic program, supportting proper fraction arithmetic 
    //2016,03,04
    
    #include<iostream>
    #include<stdlib.h>
    #include<time.h>
    using namespace std;
    
    void main()
    {
    	srand((int)time(NULL));  //Produce seeds
    
    	int array_A[30];
    	int array_B[30];
    	for (int i = 0; i < 30; i++)   //Produce 30 random number in the two arrays respectively
    	{
    		array_A[i] = 1+rand() % 99;
    		array_B[i] = 1+rand() % 99;
    	}
    	for (int i = 0; i < 30; i++)
    	{
    		if (array_A[i] > array_B[i])
    		{
    			int suanfu = rand() % 4;
    			switch (suanfu)
    			{
    			case 0:
    				cout << array_A[i] << " + " << array_B[i] << "=" << endl; break;
    			case 1:
    				cout << array_A[i] << " - " << array_B[i] << "=" << endl; break;
    			case 2:
    				cout << array_A[i] << " x " << array_B[i] << "=" << endl; break;
    			case 3:
    				cout << array_A[i] << " ÷ " << array_B[i] << "=" << endl; break;
    			}
    		}
    		else 
    		{
    			int copyA = array_A[i];    //Retain the original value of A;
    			int copyB = array_B[i];
    			int beichushuA = 100;      //The denominator is set to 100
    			int beichushuB = 100;
    			int firstA = beichushuA % copyA;
    			int firstB = beichushuB % copyB;
    			while (firstA != 0)       //Get the greatest common divisor of A and 100 to get true score reduction
    			{
    				int temp = copyA;
    				copyA = beichushuA%copyA;
    				beichushuA = temp;
    				firstA = beichushuA%copyA;  //copyA is becoming the Greatest common divisor in the end
    			}
    			while (firstB != 0)
    			{
    				int temp = copyB;
    				copyB = beichushuB%copyB;
    				beichushuB = temp;
    				firstB = beichushuB%copyB;
    			}
    			int suanfu = rand() % 4;
    			switch (suanfu)
    			{
    				// Output fractional in the form of the minimalist
    			case 0:
    				cout << array_A[i] / copyA << "/" << 100 / copyA << " + " << array_B[i] / copyB << "/" << 100 / copyB << "=" << endl; break;
    			case 1:
    				cout << array_B[i] / copyB << "/" << 100 / copyB << " - " << array_A[i] / copyA << "/" << 100 / copyA << "=" << endl; break;
    			case 2:
    				cout << array_A[i] / copyA << "/" << 100 / copyA << " x " << array_B[i] / copyB << "/" << 100 / copyB << "=" << endl; break;
    			case 3:
    				cout << array_A[i] / copyA << "/" << 100 / copyA << " ÷ " << array_B[i] / copyB << "/" << 100 / copyB << "=" << endl; break;
    			}
    		}
    	}
    }
    

        程序运行截图:

  • 相关阅读:
    MVVM架构~knockoutjs系列之表单添加(验证)与列表操作源码开放
    MVVM架构~knockoutjs系列之验证成功提示显示
    MVVM架构~knockoutjs系列之正则表达式使规则更灵活
    郁闷~win7无法进行局域网访问解决
    不合规范的html段落php处理细则
    备份一个通过拷贝来创建虚拟机镜像的脚本
    [置顶] ffmpg简介以及用它实现音频视频合并(java)
    [Java] HttpClient有个古怪的stalecheck选项
    POJ 1260 Pearls
    “AIR SDK 0.0: AIR SDK location “...devsdksAIRSDKWin” does not exist.”问题解决~
  • 原文地址:https://www.cnblogs.com/hulidanxiang/p/5248055.html
Copyright © 2020-2023  润新知