#include<stdioh>
#include<mathh>
void g(a,b)
{
int c,e;
for(c=1;c<=(a<ba:b);c++)
if(a%c==0&&b%c==0)//都能被整除,则存储到e;
e=c;
printf("最大公约数为:%d\n",e);
}
void f(a,b)
{
int d;
for(d=(a>ba:b);d<=ab;d++)
if(d%a==0&&d%b==0)//都能被整除,则输出;
{
printf("最小公倍数为:%d\n",d);
return
}
void main()
{
int a,b;
printf("请输入三个整数:\n");
scanf("%d,%d",&a,&b);
g(a,b);
f(a,b);
}
扩展资料
计算三个数的平均值的源代码如下:
#include<stdioh>
#include<mathh>
int main()
{
int one,two,three;//声明三个变量
double four;//声明平均值变量
printf("整个程序可以用来计算三个数的正整数平均值\n"
"请输入三个数值,无所谓正数还是负数\n"
"空格隔开,回车输入\n");//提高程序可读性
scanf("%d %d %d",&one,&two,&three);//读取三个用户输入的数值
four=(abs(one)+abs(two)+abs(three))/30;//计算平均值
printf("平均值为%16lf",four);//打印平均值在屏幕上
getchar();
getchar();
return 0;
}
书上有类似的问题,你照猫画虎
#include
#include
int
zxgb(int
a,int
b)
{
int
i;
for(i=1;ai%b;++i);
return
ai;
}
int
main()
{
int
a,b;
printf("请输入两个正整数:");
scanf("%d%d",&a,&b);
//楼上这一句错了
if(ab==0)
{
printf("你输入的数据不正确!");
exit(0);}
//防止输入0
printf("%d和%d的最小公倍数是:%d\n",a,b,zxgb(a,b));
//楼上这里用判断语句多余了
return
0;
}
方法一:辗转相除法:
首先判断m是否小于n,不然交换两个值,始终保持m永远是最大的值,求余d=m%n,判断余数是否为0如过为0,则最大公因数为n,否则m=n;n=d;接着求余直到余数d为0,此时最大公因数为n。
方法二:相减法:
如果m,n相等,最大公因数为两个数的任何一个,否则当m>n时,m=m-n,n>m时,n=n-m,一直减到m=n时输出max等于m,n两个数任何一个。
方法三:穷举法
首先保持第一个数为最大的值否则交换两个值,令i=m,开始递减,直到m和n同时除以i为0,此时输出最大公因数为max=i。
一般,欲求最小公倍数,先求最大公约数。输入/输出部分你自己写了,这里只是简单用C语言表示使用欧几里德算法:gcd(a,b) = gcd(b,a mod b)进行计算的部分。理解这个算法是关键,可以参考网络上的相关解释或者相关书籍上的解释。 输入部分/ input /略。 处理部分先求最大公约数,用递归形式表示欧几里德算法。如果理解了算法,看上去是非常舒服(简单)的。/ greatest common divisor /int gcd(int a, int b){ return b == 0 ( a : gcd(a%b));} 通过最大公约数,再求最小公倍数。/ least common multiple /int lcm(int a, int b) { return a b / gcd (a, b);} 输出部分/output/略。
#include <stdioh>
int main()
{
int a,b,c;//三个数
printf("请输入三个数\n");
scanf("%d%d%d",&a,&b,&c);
for(int i = a;;i++)
{
if((i%a == 0)&&(i%b == 0)&&(i%c == 0))//当i可以同时被三个数整除时输出结果;
{
printf("最小公倍数为:\n%d",i);
break;
}
}
return 0;
}
以上就是关于用C语言来编写程序求三个数的最小公倍数填空,全部的内容,包括:用C语言来编写程序求三个数的最小公倍数填空,、用c语言编写求两个数的最小公倍数的程序、C++编写程序求两个数最大公因数和最小公倍数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)