【c语言】(函数)写两个函数,分别求两个整数的最大公约数和最小公倍数。在主函数中输入两个数,分别调用这两个函数,并输出结果

题目:

写两个函数,分别求两个整数的最大公约数和最小公倍数。在主函数中输入两个数,分别调用这两个函数,并输出结果

思路分析:
  1. 最大公因数:用i循环,同时被a,b整除,将其存在g内,找到最大的g并输出
  2. 最小公倍数:=(a*b)/gcd(a, b)
代码实现:
#include<stdio.h>
int gcd(int a, int b)           //gcd最大公因数 
{
	int i = 0, g = 0;
	int m = 0;
	m = a < b? a : b;
	for(i = 1; i <= m; i++)
	{
		if(a%i == 0 && b%i == 0)
		{
			g = i;
		}
	}
	return g;
}
int lcm(int a, int b)           //lcm最小公倍数 
{
	return (a*b)/gcd(a, b);
}
int main()
{
	int a = 0, b = 0;
	int c = 0, d = 0;
	printf("Input number a, b:");
	scanf("%d%d",&a,&b);
	c = gcd(a, b);
	d = lcm(a, b);
	printf("Output gcd = %d, lcm = %d",c,d);
	return 0;
}
运行结果:在这里插入图片描述
  • 38
    点赞
  • 146
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
C语言程序设计 实 验 报 告 实验题目 实验七 函数 实验目的 掌握函数定义的方法; 掌握函数实参与形参的对应关系,以及值传递的方式。 掌握函数的嵌套调用和递归调用的方法; 掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法; 学习对多文件的程序的编译和运行。 实验内容和步骤 1. 一个判别素数的函数。在主函数输入一个整数,输出是否是素数的信息。 #include<stdio.h> void main() {int prime(int); int m,flag=1; char c; while(flag) {printf("Enter the m:\n"); scanf("%d",&m); if(prime(m)) printf("%d 是素数!",m); else printf("%d 不是素数!",m); printf("\nContinue or not?(Y&N)\n"); scanf(" %c",&c); if(c=='Y') flag=1; else flag=0; } } int prime(int m) {int i,flag=1; for(i=2;i<m && flag;i++) if(m%i==0) flag=0; return flag; } 2、用一个函数来实现将一行字符串最长的单词找出。此行字符串从主函数传递 给该函数。 (1)把两个函数放在同一个程序文件,作为一个文件进行编译和运行。#include<st dio.h> #include<string.h> void main() {int word(char); int longest(char[]); int i; char string[80]; printf("Enter a line:\n"); gets(string); printf("The longest word is:\n"); for(i=longest(string);word(string[i]);i++) putchar(string[i]); putchar('\n'); } int word(char c) {if(c>'a'&&c<'z' "" c>'A'&&c<'z') return 1; else return 0; } int longest(char string[]) {int len=0,length=0,flag=1,place=0,point,i; for(i=0;i<=strlen(string);i++) if(word(string[i])) if(flag) {point=i;flag=0;} else len++; else {flag=1; if(len>length) {length=len;place=point;} len=0; } return place; } (2)、把两个函数分别放在两个程序文件,作为两个文件进行编译。 注:下图为文件内容(文件名分别为8__10.c和file2.c) 3、用递归法讲一个整数n转换成字符串。 #include<stdio.h> void main() {void convert(int); int m; printf("Enter int m:\n"); scanf("%d",&m); convert(m); putchar('\n'); } void convert(int m) {int i; if((i=m/10)!=0) convert(i); printf("%c ",m%10+'0'); } 4、两个整数最大公约数和最小公倍数。 (1)不用全局变量,分别用两个函数最大公约数和最小公倍数整数主函数输 入,传递给函数1,以最小公倍数,然后再与两个整数一起作为实参传给函数2,以 最小公倍数,返回主函数输出最大公约数和最小公倍数。 #include<stdio.h> void main() {int great_commom(int x,int y); int low_common(int m,int n,int a); int a,b,m,n; //用m,n,a,b分别代表两个数及其最大公约数和最小公倍数 printf("Please enter two numbers:\n"); scanf("%d %d",&m,&n); a=great_commom(m,n); b=low_common(m,n,a); printf("最大公约数为:%d;\n最小公倍数为:%d。\n",a,b); } int great_commom(int x,int y) {int i,s; for(i=1;i<=(x>y?y:x);i++) if(x%i==0 && y
浙江大学C语言上机练习题&答案 第2周(M2) 2 20011华氏温度100°F对应的摄氏温度。 2 20012 华氏温度 150°F 对应的摄氏温度。 3 20013摄氏温度26°C对应的华氏温度。 3 20015当n为152时,分别出n的个位数字(digit1)、十位数字(digit2)和百位数字(digit3)的值。 3 20026 输入2个整数 num1 和 num2,计算并输出它们的和、差、积、商与余数。 4 第3周(M3) 5 20031 1+2+3+......+100(调试示例error02_5) 5 20032 m+(m+1)+(m+2)+......+100 5 20033 1/m+1/(m+1)+1/(m+2)+......+1/n 6 20034 1 + 1/3 + 1/5 + ......的前n项和 7 20035 1-1/4+1/7-1/10+……的前n项之和 7 20036 输出华氏-摄氏温度转换表(改错题error02_6) 8 20038 x的n次幂 9 20041 生成 3 的乘方表 10 20044 100^0.5+101^0.5+……+1000^0.5 10 20053 计算物体自由下落的距离 11 20056 计算分段函数 11 20061 阶梯电价 12 20062 m*m+1/m+(m+1)*(m+1)+1/(m+1)+(m+2)*(m+2)+1/(m+2)+......+n*n+1/n 13 20063 1-2/3+3/5-4/7+5/9-6/11+…… 14 20064 2^1+2^2+2^3+……+2^n 15 第4周(M4) 15 10007 显示图案 (复习printf()的字符串输出) 15 20042 生成阶乘表 16 20043 使用函数 n! /(m!* (n-m)!) 16 20054 平均值 17 20057 1+1/2+1/3+......+1/n 18 20065 0!+1!+2!+……+n! 18 40015 最小值 19 40018 a+aa+aaa+aa…a 20 第5周(M5) 21 30001 一元二次方程的根 21 30002 分段函数的值 23 30003 分类统计字符 23 30004 显示五级记分制成绩所对应的百分制成绩区间(使用switch) 24 30005 显示水果的价格(使用switch) 25 30007 三角形的面积和周长 27 30008 计算个人所得税 28 30051 判断闰年 29 30052 统计学生平均成绩与及格人数 30 30053 分段计算水费(使用嵌套的if-else语句) 31 第6周(M6) 32 40011 最小公倍数最大公约数(调试示例error04_1) 32 40012 1-1/4+1/7-1/10+1/13-1/16+…… 33 40014 整数的位数 34 40023 换硬币 35 40024 找出各位数字的立方和等于它本身的数 36 40025 找完数(改错题error04_2) 38 40027 从高位开始逐位输出一个整数的各位数字(选作) 39 40052 判断素数 40 40053 逆序输出整数 41 40054 输出斐波那契序列 42 第7周(M7) 42 50002 使用函数判断数的符号 42 50003 使用函数奇数和 43 50005 使用函数统计素数并和 44 50006 使用函数统计一个整数数字的个数 45 50007 使用函数找水仙花数 46 50009 使用函数余弦函数的近似值 48 50052 使用函数最大值 49 50062 使用函数输出指定范围内的 Fibonacci 数 50 50063 使用函数找出指定范围内的完数 51 第8周(M8) 52 40013 奇数和 52 40062 x+x*x/2!+x*x*x/3!+x*x*x*x/4!+……的值 53 50004 使用函数计算点间的距离 54 50061 使用函数a+aa+aaa+aa…a 55 60002 整数的十进制、八进制和十六进制表现形式 56 60003 分类统计字符 57 60006 验证歌德巴赫猜想 58 60007 使用函数输出整数的逆序数 59 60009 统计单词 60 60062 简单计算器 61 夏1周 2 70011 简化的插入排序 2 70012 平均值 5 70013 将数组的数逆序存放 6 70014 最大值及其下标 7 70015 交换最小值和最大值 8 70016 选择法排序 9 70017 在数组查找指定的元素 10 70021 矩阵各行元素之和 11 70022 矩阵运算 12 70023 九九乘法表 13 夏2周 14 70024 判断上三角矩阵 14 70025 算算看,这是第几天? 15 70026 找鞍点(选作) 16 70031 将字符串逆序存放 17 70032 查找字符 18 70033 统计大辅音字母 19 70034 字符串替换 20 70035 将十六进制字符串转换为十进制整数 21 70036 将十进制字符串转换为十进制整数 22 70052 统计字符出现次数 23 夏3周 24 10008 1~100能被6整除的所有整数的和 24 20014 计算三门课程的平均成绩 25 20016 计算x的平方 25 20021 计算分段函数的值 25 20022 计算摄氏温度 26 70051 找最大值并交换 27 80011 循环移动 28 80012 在数组查找指定元素 29 80013 使用函数的选择法排序 30 80014 报数 32 夏4周 35 10012 函数程序设计 35 10024 计算最长的字符串长度 36 10025 字符串的连接 37 40017 2/1+3/2+5/3+8/5+... 38 80021 找最大的字符串 39 80022 找最长字符串 40 80023 使用函数删除字符串的字符 41 80024 使用函数实现字符串复制 42 80025 判断回文字符串 43 80026 分类统计字符个数 44 夏5周 45 10014 计算函数P(n,x) 45 10016 十进制转换二进制 46 10017 递归函数程序设计Fabonacci数列 48 10019 改错题error10_1.cpp 49 10022 编程题 50 10026 指定位置输出字符串 50 10027 藏尾诗 51 10028 改错题error11_2.cpp 52 40065 分解质因数 53 40067 打印图案 54 夏6周 56 30062 输出21世纪所有闰年 56 90001 调试示例error09_1.cpp 56 90002 时间换算 57 90003 计算平均成绩 58 90004 计算两个复数之积 59 90005 查找书籍 60 90006 通讯录排序 61 90007 算算看,这是第几天? 62 90008 使用函数实现时间换算 63 90009 找出总分最高的学生 64 其它练习 65 20027计算旅途时间。 65 20028数字加密 66 教材习题3-4 (上机练习30009,统计学生成绩) 66 30061 出租车计费 67 教材习题4-12(p77) 68 教材习题4-14(p77) 69 50051 数字金字塔(此题与40067打印图案的思路相似) 69
1 调用函数结构程序题: 1.1 比较两个数,输出最大者 1.2 输入两个实数,用一个函数出他们之和 1.3 递推方法n! 1.4 有两个班级,分别有35名和30名学生,调用函数,分别两个班的平均值 1.5 用选择法对数组的10个整数按由小到大排序 1.6 有一个3*4的矩阵,所以=有元素最大值 1.7 有一个数,内放10个数,不用全局变量最大值,最小值,和平均值。 1.8 用调用函数最大公约数和最小公倍数两个整数由键盘输入 1.9 出一个判素数的函数,在主函数输入一个整数,输出是否为素数的信息 1.10 用调用函数水仙花数 1.11 用调用函数将3*3的二维数组行和列互换 1.12 对10个数由小到大排序,用函数调用冒泡法 2 数组结构程序题: 2.1 Fibonacci(斐波那契)数列的前40个数 2.2 用数组来处理Fibonacci 数列问题 2.3 将一个二维数组行和列的元素互换,存到另一个二维数组 2.4 一个3*3的矩阵的对角线之和 2.5 将一个数的值按逆序重新存放,例如:原来顺序为8,6,5,4,1.要改为1,4,5,6,8.注:考虑偶数或奇数时怎么交换 2.6 输入个数,去掉最大数和最小数后平均值 2.7输入个数到数列,再输入一数值,如果与该数相同数组的元素相同时,则输出其下标,否则,输出“-1” 2.8降序排列十个数 2.9 一个二维数组的最大值和最小值 2.10 一个4*4矩阵所有元素的和 3 循环结构程序题 3.1 输入一个大于3的整数n,判断它是否为素数(素数又称质数,就是除了能被1和它本身整除之外,不能被其它自然数整除的自然数) 3.2 输入两个数,最大公约数和最大公倍数 3.3输入一行字符,输出其英文字母,空格,数字,和其它字符的个数 3.4 2+22+222+2222+2222,位数和数值自己输入 3.5“水仙花数”是一个三位数其各位数字的立方和等于该数本身 3.6 有一个分数序列 2/1,3/2,5/3,8/5,13/8,21/13,......出这个序列数的前20项之和 3.7 计算1-3+5-7+.....-99+101的值 3.8 n!的值 3.9 .判断一个数是否为素数? 3.10 输出九九乘法表
XAUT OJ刷题答案 1004 选择结构习题:奇偶数判断 65%(4810/7381) 38% 2020-4-23 1007 循环结构习题:输入两个整数,输出它们的最大公约数 66%(4379/6621) 36% 2020-4-23 1008 顺序结构习题:个数的平均值 63%(4500/7162) 39% 2020-4-23 1009 顺序结构习题:点之间的距离 61%(4135/6812) 41% 2020-4-23 1010 顺序结构习题:摄氏温度转换为华氏温度和绝对温度 53%(3782/7194) 49% 2020-4-23 1011 选择结构习题:个数最大值 52%(4280/8171) 50% 2020-4-23 1012 循环结构习题:公式π值 61%(3955/6500) 42% 2020-4-23 1013 循环结构习题:输入10个整数 ,输出所有负数并其和 62%(3952/6347) 40% 2020-4-23 1014 循环结构习题:输出同构数 50%(3855/7711) 52% 2020-4-23 1015 选择结构习题:百分值转换成其相应的等级 45%(3592/7997) 56% 2020-4-23 1017 循环结构习题:一个分数序列的值。 65%(3404/5227) 36% 2020-4-23 1018 循环结构习题:2+22+222+....+22222的值 49%(3611/7443) 54% 2020-4-23 1019 循环结构习题:大小字母转换 52%(3316/6343) 49% 2020-4-23 1020 循环结构习题:任意输入n个数,输出最大最小值及其对应的序列号 56%(3078/5455) 45% 2020-4-23 1021 选择结构习题:三个数排序 66%(3470/5220) 35% 2020-4-23 1022 选择结构习题:分段函数 33%(3464/10497) 68% 2020-4-22 1023 循环结构习题:打印“完数” 73%(3105/4241) 28% 2020-4-23 1030 函数习题(1):输出水仙花数 64%(3463/5435) 38% 2020-4-23 1031 ----------------趣味题:柱状图排序 10%(47/491) 92% 2020-4-23 1032 函数习题(2):输入年月日,输出是本年第几天 53%(2842/5315) 48% 2020-4-23 1033 数组习题(1):矩阵最大元素值,并与同行对角线元素交换 42%(2674/6374) 59% 2020-4-23 1034 函数习题(3):函数实现最大公约数和最小公倍数 78%(2933/3754) 23% 2020-4-23 1037 函数习题(5):递归方法完成Fibonacci数列前n项 70%(2766/3924) 31% 2020-4-23 1038 数组习题(2):将2个升序数组合并为一个升序数组 65%(2243/3425) 35% 2020-4-23 1039 函数习题(6):判断一个数是否是回文数 67%(2794/4195) 35% 2020-4-23 1040 函数习题(7):递归完成x的n次方的计算 72%(2283/3178) 30% 2020-4-23 1041 数组习题(3):完成十进制数转成为二进制数 71%(2795/3951) 30% 2020-4-23 1043 函数习题(8):递归方法n阶勒让德多项式的值 63%(1671/2652) 38% 2020-4-23 1044 函数习题(9):分解一个整数的所有素数因子 71%(2321/3252) 29% 2020-4-23 1045 数组习题(4):输出Fibonacci数列的前n项 57%(2538/4476) 46% 2020-4-23 1046 数组习题(5):数组元素前移 74%(2556/3466) 28% 2020-4-23 1047 数组习题(6):有序数组插入若干数,仍保持有序 70%(2141/3048) 30% 2020-4-23 1048 函数习题(10):递归方法计算x-x2+x3-x4+…+(-1)n-1xn值 54%(1551/2850) 48% 2020-4-23 1049 数组习题(7):电文加密 64%(2345/3656) 35% 2020-4-23 1050 结构体习题(1):输入n名学生学号、姓名、三门课成绩,计算平均分,输出排行榜 50%(1966/3931) 50% 2020-4-23 1051 ----------------趣味题:输入三个字符串,按由小到大的顺序输出 39%(84/214) 62% 2020-4-15 1052 共用体习题(1):统计单位n名职工计算机水平考试成绩 64%(1139/1790) 36% 2020-4-23 1053 枚举型习题(1):输入整数输出其对应的颜色 74%(1028/1383) 25% 2020-4-23 1054 指针习题(1):升序排序 77%(1424/1861) 24% 2020-4-21 1055 指针习题(2):编写字符串连接函数strcat() 71%(1245/1753) 29% 2020-4-22 1056 指针习题(3):编写测字符串长度函数strlen() 85%(1183/1393) 15% 2020-4-22 1058 指针习题(4):猴子选大王 42%(572/1348) 59% 2020-4-22 1060 C++题目:定义一个圆类,输入圆半径,输出元的面积和周长 33%(259/784) 68% 2020-4-23 1061 C++题目:用于存放图书的栈类 45%(38/84) 55% 2019-12-16 1062 C++题目:利用重载最小值 39%(104/267) 62% 2019-12-16 1063 C++题目:友元类计算点间距离 62%(169/272) 38% 2020-4-17 1064 C++题目:补全复数类 53%(10/19) 47% 2019-11-4 1065 顺序结构习题:交换变量值 74%(1476/1997) 27% 2020-4-23 1066 顺序结构习题:大小字母转换 71%(1430/2009) 30% 2020-4-23 1067 C++题目:利用静态数据成员计算总成绩 51%(104/203) 49% 2020-4-17 1068 C++题目:矩阵类运算符重载-加法 39%(14/36) 63% 2019-12-16 1069 测试题一 80%(1056/1326) 21% 2020-4-21 1070 测试题二 67%(851/1261) 34% 2020-4-23 1071 C++题目:派生类面积 34%(14/41) 66% 2019-12-16 1072 C++题目:利用模板练习顺序循环队列 57%(21/37) 43% 2019-12-16 1073 选择结构习题:输入0~6的数字,输出对应星期的英文。 57%(783/1371) 44% 2020-4-23 1075 选择结构习题:实现简单数值运算 34%(711/2109) 69% 2020-4-23 1076 选择结构习题:根据月份、旅客订票张数和票价按优惠率计算费用 29%(481/1656) 73% 2020-4-23 1077 选择结构习题:时间格式转换 28%(484/1741) 75% 2020-4-23 1078 循环结构习题:自然数n的各位数字之和 63%(637/1008) 39% 2020-4-23 1079 循环结构习题:前n项的和 62%(583/937) 40% 2020-4-23 1080 循环结构习题:输出数字菱形 55%(439/797) 46% 2020-4-23 1081 循环结构习题:下三角乘法口诀表 29%(443/1529) 72% 2020-4-23 1082 循环结构习题:所有含6的整数的和 58%(478/818) 44% 2020-4-23 1083 循环结构习题:个数除以9的商等于它各位数字的平方和 86%(497/575) 14% 2020-4-23 1084 循环结构习题:最优方案 50%(419/844) 53% 2020-4-23 1085 函数习题:计算公式s=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…+n)的值 78%(482/616) 23% 2020-4-23 1086 函数习题:用函数实现判断一个整数是否能被n整除 68%(469/690) 34% 2020-4-23 1087 1091 结构体习题:通过学生学号查询学生 结构体习题:通过职工信息输出高于平均工资的职工信息及高于平均工资的职工人数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值