文章标题

来源:互联网 发布:网络答题知识竞赛答案 编辑:程序博客网 时间:2024/04/29 22:38
//*********最大公约数***********//作者:谭秀芳//版本:v1.0//创建时间:2017年3月19日//主要功能:随机从键盘中输入的两个整数,用三种算法实现求两个整数的最大公约数,即辗转相除法,穷举法,相减法//************************************#include <stdio.h>int main(){    int a,b,temp,num,k=1;  //定义变量    int Division(int x,int y);    int Decrease(int x,int y);    int Exhausetion(int x,int y);    while(k)      //使用while结构循环输入两个整数    {        printf("请输入两个整数(两数之间用空格隔开):\n");        scanf("%d%d",&a,&b);        if(a<=0||b<=0)    //判断a,b,中是否有0存在,若无则继续运行,若有则输出错误提示并重新输入两个整数        {            printf("输入的数据错误!\n");            printf("请输入两个整数(两数之间用空格隔开):\n");            scanf("%d%d",&a,&b);        }        if(a<b)     //判断a,b的大小,并且使a>b        {            temp=b;            b=a;            a=temp;        }        printf("1.辗转相除法    2.相减法    3.穷举法    4.退出    5.继续   \n");        int m=1;        while(m)     //输入两个整数后循环输出菜单,调用相关的函数        {            printf("请选择菜单编号:");            scanf("%d",&num);            switch(num)            {            case 1:  Division(a,b);break;            case 2:  Decrease(a,b);break;            case 3:  Exhausetion(a,b);break;            case 4:  k=0,m=0;break;            case 5:  k=1,m=0;break;            default:printf("请在数字1-4之间选择\n");            }        }    }    return 0;}//辗转相除法求最大公约数函数int Division(int x,int y){    int t;    t=x%y;    if(t!=0)    {        x=y;        y=t;        t=x%y;    }    printf("最大公约数:%d\n",y);    return 0;}//相减法求最大公约数函数int Decrease(int x,int y){    while(x!=y)        if(x>y)            x=x-y;        else            y=y-x;        printf("最大公约数为:%d\n",x);        return 0;}//穷举法求最大公约数函数int Exhausetion(int x,int y){    int i,t;    for(i=1;i<=x;i++)        if(x%i==0&&y%i==0)t=i;        printf("最大公约数:%d\n",t);        return 0;}
0 0
原创粉丝点击