C编程之旅:最大公约数和最小公倍数

 

// printnum.cpp : Defines the entry point for the console application.
//

#include 
"stdafx.h"

using namespace std;

void ShowMessage();
int InputNum(int* a, int* b);
void OutputNum(int a, int b, int c);
int MaxComD(int a, int b, int* c);
int MinComM(int a, int b, int* c);


int main(int argc, _TCHAR* argv[])
{
    
int    n    = 0;
    
int a    = 0;
    
int    b    = 0;
    
int    c    = 0;

    
for (;;)
    
{
        ShowMessage();
        cout 
<< "please input your choice:" << endl;
        cin 
>> n;

        
if (0 == n)
        
{
            
break;
        }

        
else if (1 == n)
        
{
            InputNum(
&a, &b);
            MaxComD(a, b, 
&c);
            OutputNum(a, b, c);
        }

        
else if (2 == n)
        
{
            InputNum(
&a, &b);
            MinComM(a, b, 
&c);
            OutputNum(a, b, c);
        }

        
else
        
{
            cout 
<< "input error!" << endl;
        }

    }

}


void ShowMessage()
{
    cout 
<< "-------------------------------------------" << endl;
    cout 
<< "0. exit" << endl;
    cout 
<< "1. 求两个数的最大公约数." << endl;
    cout 
<< "2. 求两个数的最小公倍数." << endl;
    cout 
<< "-------------------------------------------" << endl;
}


int InputNum(int* a, int* b)
{
    cout 
<< "please input a: " << endl;
    cin 
>> *a;

    cout 
<< "please input b: " << endl;
    cin 
>> *b;

    
return 0;
}


void OutputNum(int a, int b, int c)
{
    cout 
<< "a = " << a << endl;
    cout 
<< "b = " << b << endl;

    cout 
<< "result = " << c << endl;
}


int MaxComD(int a, int b, int* c)
{
    
int i = 0;

    
for (i = 1; i < min(a, b); i++)
    
{
        
if ( (a % i == 0&& (b % i == 0) )
        
{
            
*= i;
        }

    }


    
return *c;
}


int MinComM(int a, int b, int* c)
{
    
*= a * b / MaxComD(a, b, c);

    
return *c;
}
阅读更多
文章标签: c 编程
个人分类: C/C++
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭