VC6.0下的C程序
#include<stdio.h> /*标准I/O输入输出*/
#include<stdlib.h> /*其它说明*/
int k=1;
void menu(); /*函数声明*/
void Euclidean_algorithm();
void multiply();
void brute_force();
void sleep();
int main() /*主程序开始*/
{ system("color f0");
while(k) /*判断程序执行*/
{
menu();
}
return 0;
}
void menu() /*主界面*/
{
int i;
printf("\n \n");
printf("**********************************************\n");
printf("—————1.辗转相除法 \n");
printf("—————2.相减法 \n");
printf("—————3.穷举法 \n");
printf("—————0.退出系统 \n");
printf("请选择菜单编号:\n");
printf("**********************************************\n");
scanf("%d",&i);
switch(i) /*选择体*/
{
case 1:Euclidean_algorithm();sleep();;break;
case 2:multiply();sleep();break;
case 3:brute_force();sleep();break;
case 0:k=0;break;
default:printf("请在0—3之间选择:\n");sleep();break;
}
}
void Euclidean_algorithm() /*辗转相除法*/
{int m,n,temp1,temp2,c,temp;
printf("请输入要求最大公约数和最小公倍数的两个整数:\n");
scanf("%d %d",&m,&n);
temp1=m;
temp2=n;
if(m<n) /*判断赋值*/
{
temp=m;
m=n;
n=temp;
}
c=m%n;
while(c!=0)
{
m=n;
n=c;
c=m%n;
}
printf("这两个数的最大公约数为:%d\n",n);
printf("这两个数的最小公倍数为:%d\n",temp1*temp2/n);
}
void multiply() /*相减法*/
{ int m,n,a;
printf("请输入要求最大公约数和最小公倍数的两个整数:");
scanf("%d %d\n",&m,&n);
while(m>0&&n>0)
{
if(m>n)
a=m-n;
else
a=n-m;
}
printf("这两个数的最大公约数为:%d\n",m);
printf("这两个数的最小公倍数为:%d\n",m*n/a);
}
void brute_force() /*穷举法*/
{int m,n,temp,i;
printf("请输入要求最大公约数和最小公倍数的两个整数:\n");
scanf("%d %d",&m,&n);
if(m>n)
{ temp=m;m=n;n=temp; }
for(i=m;i>=0;i--) /*逐一列举*/
if((n%i==0)&&(m%i==0))
{ printf("这两个数的最大公约数为:%d\n",i);
printf("这两个数的最小公倍数为:%d\n",m*n/i);
break;
}
}
void sleep() /*功能函数*/
{
printf("2秒后自动跳转主页面,请等待\n");
_sleep(2000);
}