实验三 顺序及选择结构程序设计
《C语言程序设计》实验指导

实验1、C语言编程环境和运行C程序的方法一、实验目的1、熟悉Visual C++6.0集成开发环境的使用方法;2、熟悉C语言程序从编辑、编译、连接到最后运行得到结果的全过程及每一步骤的作用;3、了解C语言程序的结构特征与书写规则,能够编写简单的C程序;4、初步理解程序调试的思想,能找出并改正C程序中的典型语法错误。
二、实验内容1、熟悉上机环境⑴参照教材附录A(P370~376)或实验指导书前言中的内容,熟悉VC++6.0集成环境,重点是其中常用菜单、工具按钮的功能;⑵在D盘建立一个自己的工作文件夹,文件夹以班名+学号后两位+姓名来命名(例如:动漫班75号张三的工作文件夹命名为dm75zhangsan 注意:文件夹及文件的命名尽量不要用汉字!);⑶参照教材第1章中的3个例题的源代码,在自己的工作文件夹中分别创建并运行三个C源程序,初步熟悉C 程序的结构特点和运行方式。
注意:①每个例题对应一个C源程序(新建C源文件时,文件时务必要加扩展名.c);②一个源程序成功运行后,要关闭工作区后再新建下一个例题的源程序(否则会出错);2、编程参照教材例题1.1编写一个程序实现分两行输出自己的姓名及联系电话。
3、程序改错调试以下给定程序的功能是在屏幕上显示“Welcome to Y ou!”,其中存在3处语法错误,请根据编译给出的出错提示,依次指出错误所在行并进行修改,调试程序使其能运行得到正确结果。
#include<stdio.h>mian() //1{printf(Welcome to You!\n") //2}三、实验要求1、将每次实验所编辑的C 源程序调试通过后分别保存在D 盘上自己的文件夹中(备查!)及自己的U 盘中;2、对调试过程中出现的问题和解决方法进行必要的记录,并予以简要分析四、实验小结1、结合本次实验,简述C 程序从编写到最终运行的一般过程,并简要说明其中每个步骤的作用及其生成的文件类型。
实验3 结构化程序设计初步

实验3 结构化程序设计初步1.实验目的(1)掌握C++赋值语句与输入输出语句的使用方法,区别C语言的输入输出语句(2)掌握关系运算符、逻辑运算符与条件运算符的运算规则并能熟练计算由这些运算符构成的表达式(3)深入掌握C++各种流程控制语句(选择语句、循环语句和跳转语句)的要点和使用方法(4)能够灵活地运用C++各种语句进行综合程序设计2.实验内容2.1程序分析题。
分析下面程序的运行结果,上机运行程序,观察其输出结果与你的分析结果是否相同?(1)有如下程序,从键盘输入123456.78↙后,变量c1、c2、a、b的值分别是多少?#include <iostream.h>void main( ){char c1,c2;int a;float b;cin>>c1>>c2>>a>>b;cout<<c1<<" "<<c2<<" "<<a<<" "<<b<<'\n';}(2)#include <iostream.h>#include <iomanip.h>void main( ){double a=123.456789012345;cout<<a<<endl;cout<<setprecision(9)<<a<<endl;cout<<setprecision(6)<<a<<endl;cout<<setiosflags(ios::fixed)<<a<<endl;cout<<setiosflags(ios::fixed)<<setprecision(8)<<a<<endl;}(3)#include <iostream.h>#include <iomanip.h>void main( ){double a=123.456789012345;cout<<setiosflags(ios::scientific)<<a<<endl;cout<<setiosflags(ios::scientific)<<setprecision(4)<<a<<endl;}#include <iomanip.h>void main( ){int b=123456;cout<<b<<endl;cout<<hex<<b<<endl;cout<<setiosflags(ios::uppercase)<<b<<endl;cout<<dec<<setw(10)<<b<<','<<b<<endl;cout<<setfill('*')<<setw(10)<<b<<endl;cout<<setiosflags(ios::showpos)<<b<<endl;}(5)有如下程序,从键盘输入86 24 75↙后,程序的输出结果为多少,为什么?#include <iostream.h>void main( ){int a,b,c;cin>>a>>oct>>b>>hex>>c;cout<<a<<" "<<b<<" "<<c<<endl;}(6)#include <iostream.h>#include <iomanip.h>void main( ){short a=-1;cout<<dec<<a<<" "<<oct<<a<<" "<<hex<<a<<endl;}(7)#include <stdio.h>void main( ){int a=-1;printf("dec:%d,oct:%o,hex:%x,unsigned:%u\n",a,a,a,a);}(8)以下程序中,为了给整型变量k1,k3赋值为10,给k2,k4赋值为20,如何输入数据?#include <stdio.h>void main( ){int k1,k2,k3,k4;scanf("%d%d",&k1,&k2);scanf("%d,%d",&k3,&k4);printf("k1=%d,k2=%d,k3=%d,k4=%d\n",k1,k2,k3,k4);}void main( ){int a=3,b=4,c=5,d=6,e,f;e=a>b&&(c=8);cout<<c<<" "<<e<<endl;f=a<b&&(e=c<d);cout<<e<<" "<<f<<endl;f=a<b||(d>0?d++:d--);cout<<d<<" "<<f<<endl;}(10)#include <iostream.h>void main( ){int x,y,z,w;z=(x=-1)?(y=-1,y+=x+5):(x=7,y=9);w=y*'a'/4;cout<<x<<" "<<y<<" "<<z<<" "<<w<<endl;}(11)#include <iostream.h>void main( ){int a=5,b=7,c=3,t;if(a= -1) cout<<"Yes"<<endl;else cout<<"No"<<endl;if(a>b) { t=a;a=b;b=t; }if(a>c) { t=a;a=c;c=t; }if(b>c) { t=b;b=c;c=t; }cout<<a<<" "<<b<<" "<<c<<endl;}解析:a被赋值为-1,输出YESIf语句成立则执行,不成立则不执行分析只有b>c成立,=后面的值赋给左边的,顺序从左到右(12)#include <iostream.h>void main( ){ char c='3';switch(c-'1'){case 0:case 1:cout<<c+1<<endl;case 2:cout<<c+2<<" "<<char(c+2)<<endl;default:cout<<c+3<<" "<<char(c+3)<<endl;}}‘3’是字符型,ASCLL码为051,执行Switch时,根据switch表达式的值找到与之匹配的case子句,就从此子句开始执行下去,不再进行判断(13)#include <iostream.h>void main( ){int a=2,b=7,c=5;switch(a>0){case 1:switch(b<0){case 1: cout<<"+";break;case 2: cout<<"-";break;}case 0:switch(c==5){case 0: cout<<"*";break;case 1: cout<<"/";break;default: cout<<"#";break;}default: cout<<"$";}cout<<"\n";}a>0是真,值为1,执行case1,继续下面,b<0是假,不执行其中的case1.case2c==5是真,值为1,执行case1,输出/,其后有break,被中断不再执行分句里其下的命令,default: cout<<"$"前面没有break,则输出$(14)#include <iostream.h>void main( ){int a=10,b=0;do{a+=2;b+=a;cout<<"a="<<a<<",b="<<b<<endl;if(b>20) break;}while(a!=14);}(15)#include <iostream.h>void main( ){int i,j;for(i=10;i<20;i++){for(j=2;j<=i/2;j++)if(i%j==0) break;if(j>i/2)cout<<i<<" ";}cout<<endl;}(16)#include <iostream.h>void main( ){int i,j,m=0;for(i=0;i<5;i++)for(j=0;j<5;j++)if(j>=i) m++;cout<<m<<endl;}(17)#include <iostream.h>void main( ){int i,j;for(i=1;i<=9;i++){for(j=1;j<=9;j++){ if(j>i) break;cout<<i<<"*"<<j<<"="<<i*j<<" ";}cout<<endl;}}(18)#include <iostream.h>void main( ){int i=1,sum=0;while(i<=100){if(i%2==0){ i++; continue;}sum+=i;i++;}cout<<sum<<endl;}2.2编程题(1)编写程序从键盘输入一个大写字母,将其转换为小写字母并输出。
国家开放大学Python程序设计形考任务实验三-Python程序流程控制练习

输入的三角形三个边长(a,b,c),计算三角形的面积
输入三个数(a,b,c),按从大到小进行排序
判断输入的某一年(y)是否为闰年。
五、实训体会
通过这次实验的练习,我学会了如何用python计算三角形面积和数字大写小排序以及年份判断,同时认识到了自己学习上遇到的问题,并进一步了解到了python的强大。
实验名称:
Python程序设计课程实验报告
教师评语
教师签字日期:
成绩
学生姓名
学号
一、实验目标
1.掌握顺序结构的写法。
2.掌握选择结构的各种写法。
3.掌握循环结构的集中主要写法。
二、实验环境
Jupyter Notebook、Python3
三、实验内容
1.根据输入的三角形三个边长(a,b,c),计算三角形的面积。
《C语言程序设计实验》指导书

《C语言程序设计实验》指导书以下是为大家整理的《c语言程序设计实验》指导书的相关范文,本文关键词为c语言程序设计实验,指导书,c语言程序设计实验,简明版,中北,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在教育文库中查看更多范文。
《c语言程序设计实验》指导书(简明版)中北大学软件学院20XX年10月实验一顺序结构程序设计(2学时)一、实验目的1、熟悉c编译环境、简单c程序结构及书写方式、以及c程序的编辑、编译、连接、运行、调试的步骤;2、掌握c语言的基本数据类型及其输入输出格式,以及输入输出函数的使用方法;3、掌握c语言的算术运算符(特别是自增、自减运算符)、赋值运算符、关系运算符、逻辑运算符、条件运算符、逗号运算符的使用;4、掌握c语言顺序结构程序的执行流程、设计方法,能够根据实际问题灵活使用顺序结构,画出程序的算法流程图,设计出逻辑合理、思路清晰、结果正确的顺序结构程序。
二、实验内容及要求1、实验内容包括8道题目,分为基本内容和选做内容两部分。
要求:(1)基本内容中的实验题目是必须要完成的,选做内容中的实验题目可以根据自己的情况选做或全做(越多越好,适当加分);(2)在实验之前编写出基本内容、选做内容中的所有程序,实验前检查(视未完成情况适当扣分);(3)对于设计型题目,要求画出程序流程图(传统流程图和n-s 图);(4)在上机实验过程中,注意总结和体会上机步骤(编辑、编译、连接、运行、调试、结果分析),注意培养观察、分析和排除编译错误、连接错误和程序逻辑错误的初步能力;(5)上机结束后,应按要求认真书写实验报告(格式见附件)。
2、基本内容(1)[验证型]编辑下列程序,然后进行编译、连接和运行,观察结果,并简要总结简单c程序的结构、书写格式以及上机过程;#includeintmain(){printf(\return0;}(2)[验证型]通过运行下列程序,分析各种格式符的使用方法。
实验三-选择结构程序设计

实验三选择结构程序设计3.1实验要求与目的1.掌握关系表达式和逻辑表达式的正确应用2.条件表达式的正确应用3. 掌握if语句,if-else语句,if语句的嵌套的编程方法4. 掌握switch的编程方法及执行特点5.掌握相关的算法(大小写字母的转换,判断数的奇偶,整数的整除,分段函数的求解,成绩的转换等)6. 培养解决实际问题的能力3.2实验指导结构化程序设计的三大结构:顺序结构、选择结构和循环结构。
计算机在执行过程时,根据条件选择所要执行的语句,称为选择结构,也称为分支结构。
在解决实际问题时,可能会因为其种条件的约束产生分支,可能是单分支结构、双分支结构和多分支结构等。
因此可选择相应的语句进行程序设计。
C语言程序设计实现单分支结构常采用,if语句;实现双分支结构常采用:if-else语句;实现多分支结构常采用:if-else嵌套语句或switch语句。
选择结构的程序设计除了选择适当的语句外,另一关键问题是条件的正确表示。
条件可以用表达式来描述,如关系表达式、逻辑表达式等。
【3.1】录入下列程序,输入给定的测试数据,观察其程序执行结果。
程序文件名为:ex3_1.c。
输入测试数据:23 56程序运行结果:max=56#include<stdio.h>void main(){int a,b,max;scanf("%d%d",&a,&b); /*从键盘输入两整数*/max=a;if(max<b)max=b;printf("max=%d\n",max); /*输出最大数*/}该程序的执行过程,从键盘输入两个整数赋予a,b,把a的值先赋予变量max,采用if 语句判别max和b的大小,若max小于b,则把b的值赋予max,然后执行printf语句输出max的值;若max大于b,不执行if后的语句,而执行printf语句输出max的值;max中的值总是大数。
[C语言]顺序、选择结构实验报告
![[C语言]顺序、选择结构实验报告](https://img.taocdn.com/s3/m/072da5a1941ea76e59fa0428.png)
实验报告课程名称程序设计语言C/C++实验项目顺序结构,选择结构编程与调试一、实验目的1.掌握C语言中使用最多的一种语句——赋值语句的使用方法。
2.掌握各种数据类型的输入输出的方法,能正确使用各种格式转换符。
3.掌握选择结构程序设计的方法和用用关系表达式、逻辑表达式表示选择结构的条件。
二、实验内容1.调试关于各种格式转换符的正确使用方法的程序并验证结果的正确性。
2.编写并调试简单的关于数据类型输入输出的程序。
3.编写并调试运行关于if语句和switch语句使用的程序。
三、实验步骤及结果分析1.从键盘输入两个整数,求两数之和并输出。
#include <stdio.h>int main ( ){int a,b,c;printf("请输入两个整数:\n");scanf("%d,%d",&a,&b);c=a+b;printf("两数之和为:%d\n",c);return 0;}2.从键盘输入园的半径r,求园的周长C、面积S并输出。
#include <stdio.h>int main( ){float pai=3.14159;float r,C,S;printf("Please enter the radius of the circle:");scanf("%f",&r);C=2*pai*r;S=pai*r*r;printf("The circumference of the circle C is %.2f\n",C); printf("The area of the circle is %.2f\n",S);return 0;}3.从键盘输入一个小写字母,要求输出其对应的大写字母。
#include <stdio.h>int main (){char c1,c2;c1=getchar();c2=c1-32;putchar(c2);printf("\n");return 0;}4.输入圆锥的底面圆的半径和高,求圆锥的表面积和体积。
程序设计基础(C语言)实验报告

程序设计基础(C语言)实验报告课程名称:程序设计基础(C语言)姓名:学号:年级:专业:指导教师:实验地点:目录实验一顺序结构程序设计实验二选择结构程序设计实验三循环结构程序设计实验四数组及其应用实验五函数及其应用实验六指针及其应用实验(一)顺序结构程序设计一、实验目的1.掌握顺序结构程序的设计思想,领会顺序结构的程序执行时顺次执行的特点。
2.掌握赋值语句的特点、功能。
3.掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
4.掌握编写程序和调试程序的方法。
二、实验内容及要求1.用下面的scanf函数输入数据使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。
#include <stdio.h>int main(){int a,b;float x,y;char c1,c2;scanf("a=%db=%d",&a,&b);scanf("%f%e",&x,&y);scanf("%c%c",&c1,&c2);printf("a=%d,b=%d,x=%.1f,y=%.2f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);return 0;}运行时分别按以下方式输入数据,观察输出结果,分析原因(□表示空格,↙表示回车)。
(1)a=3,b=7,x=8.5,y=71.82,A,a↙(2)a=3□b=7□x=8.5□y=71.82□A□a↙(3)a=3□b=7□8.5□71.82□A□a↙(4)a=3□b=7□8.5□71.82Aa↙(5)3□7□8.5□71.82Aa↙(6)a=3□b=7↙8.5□71.82↙A↙a↙(7)a=3□b=7↙8.5□71.82↙Aa↙(8)a=3□b=7↙8.5□71.82Aa↙通过此题,总结输入数据的规律和容易出错的地方。
《高级语言程序设计》实验报告

合肥师范学院实验报告册2013 / 201 学年第1 学期系别计算机科学与技术系实验课程高级语言程序设计专业班级姓名学号指导教师《高级语言程序设计》实验 班级: 学号: 姓名:-1-实验一 ——VC 工作环境及顺序结构程序设计一、实验目的1. 熟悉VC++的运行环境,掌握运行一个C 程序的基本步骤,包括编辑、编译、连接和运行;2. 理解顺序结构程序方式;3. 了解常用数据类型的输入输出方法;4. 了解C 程序的基本框架,能编写简单的C 程序,了解程序调试;二、实验预习内容在认真阅读教材及实验指导书的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。
1. 输入并运行一个简单、正确的程序。
输入编程示例 “Hello ,World !”程序,即: # inc lude “stdio.h” int main(void) {printf("Hello ,World !\n"); return 0; }1) 参考实验指导书P223~P233,学习C 程序的编辑、编译、运行,熟悉VC++6.0的基本界面操作。
2) 修改本例,使用printf ()输出自己的个性化签名,保存到文件ex1_1.c 中。
2. 程序改错题:# include stdio.h int mian(void) {printf( Welcome to You! \n" ) return 0;1) 分析本程序段中哪些地方存在错误?请标记出来,并给出修改意见。
2) 输入上面程序(或打开error1_2.c ),学习程序调试。
3. 程序阅读题:1) 请分析下面程序(ex1_3.c )运行结果是什么? # include <stdio.h> int main(void){ char c1,c2 ; c1=97; c2=98; printf( "c1=%c,c2=%c \n", c1, c2 ); printf( "c1=%d,c2=%d \n", c1, c2 ); return 0; } 运行结果是: 2) 若将程序第4,5行改为c1=197;c2=198;运行结果又如何?并简单分析。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三顺序及选择结构程序设计一、实验目的1、掌握顺序结构程序的设计方法。
2、掌握赋值语句、注释语句、InputBox()函数、MsgBox语句与函数的使用方法。
3、掌握Print方法、Tab函数、字体类型、打印机输出的使用。
4、掌握简单块If语句、多分支块If语句、行If语句、IIf()函数的使用。
5、掌握情况语句(Select Case)的使用。
二、实验内容要求:实验一、实验二中选做一个,实验三、实验四中选做一个1、实验一。
2、实验二。
3、实验三。
4、实验四。
三、实验指导1、实验一。
用InputBox()函数输入弧度值,将弧度值转换为角度值(度、分、秒)的形式,然后在窗体上打印出来。
【提示】利用InputBox()函数输入弧度值后,首先把弧度值转换为原始角度值,然后取整,结果就为角度值中的度值,然后把原始角度值减去度值,把结果转化为分值,采用类似思维即可求出结果。
【参考代码】Private Sub Cmd1_Click()Dim s As Single, a As Integer, b As Integer, c As IntegerConst pi As Single = 3.14159s = Val(InputBox("请输入弧度值:"))s = s * 180 / pia = Int(s)s = s - as = s * 60b = Int(s)s = s - bc = s * 60Print "对应的角度值为:"; a & "度" & b & "分" & c & "秒。
"End Sub程序运行界面如图4.1所示。
图4.1程序运行界面2、实验二。
所谓“水仙花数”是指一个三位数,其各位数的立方和等于该数,如:153=13+53+33利用InputBox()函数输入一个三位的整数,判断其是否为水仙花数。
【提示】利用InputBox()函数输入一个三位的整数赋值给一个变量,分别求出其百位、十位、个位数字,之后进行判断(用块IF语句),所以代码应该写在命令按钮的单击事件中,在取三位数的个位、十位、百位时,可以使用整除法(bw = n \ 100),也可以使用取整法(bw = Int(n / 100))来编写。
【参考代码】Private Sub Cmd1_Click()Dim n As Integer, gw As Integer, sw As Integer, bw As Integern = InputBox("请输入一个三位数:")bw = n \ 100sw = (n - bw * 100) \ 10gw = n - bw * 100 - sw * 10If gw ^ 3 + sw ^ 3 + bw ^ 3 = n ThenPrint n; "是水仙花数。
"ElsePrint n; "不是水仙花数。
"End IfEnd Sub程序运行界面如图4.2所示:图4.2 程序运行界面3、实验三。
编写程序,为航空公司计算票价的优惠率,假设优惠率规定如下:①在旅游旺季7~9月份,如果订票数超过20张,票价优惠15%;20张以下,优惠5%。
②在旅游淡季1~5月份、10月份和十一月份,如果订票数超过20张,票价优惠30%;20张以下,优惠20%。
③其它情况一律优惠10%。
根据月份和订票张数决定票价的优惠率。
【提示】本例有两重条件,所以用嵌套实现,首先判断月份,在月份确定的情况下判断订票张数,代码应该写在命令按钮的单击事件中。
【参考代码】Private Sub Cmd1_Click()Dim m As Integer, n As Integer, r As Integerm = Val(Text1.Text)n = Val(Text2.Text)Select Case mCase 7 To 9If n < 20 Then r = 5 Else r = 15Case Is < 5, 10, 11If n < 20 Then r = 20 Else r = 30Case Elser = 10End SelectLabel4.Caption = "所订机票的优惠率为:" & r & "%"End Sub运行界面如图4.3所示。
图4.3 程序运行界面4、实验四。
编写程序,在窗体上添加两个框架(Frame)控件,在其中各自添加2个两个单选按钮,标题属性如下,根据选中情况在文本框内显示结果。
【提示】单选按钮是否被选中的状态用Value来表示,当单选按钮被选中用语句:单选按钮. Value=True来表示,可以使用各种选择语句来实现。
【参考代码】Private Sub Cmd1_Click()'方法1,用并行ElseIf语句。
If Opt1.V alue = True And Opt3.Value = True ThenText1.Text = "我是" & Opt1.Caption & Opt3.CaptionElseIf Opt1.Value = True And Opt4.Value = True ThenText1.Text = "我是" & Opt1.Caption & Opt4.CaptionElseIf Opt2.Value = True And Opt3.Value = True ThenText1.Text = "我是" & Opt2.Caption & Opt3.CaptionElseIf Opt2.Value = True And Opt4.Value = True ThenText1.Text = "我是" & Opt2.Caption & Opt4.CaptionEnd IfEnd Sub本题也可以使用其它选择语句来实现,如:'方法2,用块If语句嵌套块If语句。
If Opt1.V alue = True ThenIf Opt3.V alue = True ThenText1.Text = "我是" & Opt1.Caption & Opt3.CaptionElseText1.Text = "我是" & Opt1.Caption & Opt4.CaptionEnd IfElseIf Opt3.V alue = True ThenText1.Text = "我是" & Opt2.Caption & Opt3.CaptionElseText1.Text = "我是" & Opt2.Caption & Opt4.CaptionEnd IfEnd If图4.4 程序运行界面常见算法:C语言求最小公倍数和最大公约数三种算法最小公倍数:数论中的一种概念,两个整数公有的倍数成为他们的公倍数,其中一个最小的公倍数是他们的最小公倍数,同样地,若干个整数公有的倍数中最小的正整数称为它们的最小公倍数,维基百科:定义点击打开链接求最小公倍数算法:最小公倍数=两整数的乘积÷最大公约数求最大公约数算法:(1)辗转相除法有两整数a和b:①a%b得余数c②若c=0,则b即为两数的最大公约数③若c≠0,则a=b,b=c,再回去执行①例如求27和15的最大公约数过程为:27÷15余1215÷12余312÷3余0因此,3即为最大公约数[cpp]view plaincopy1.#include<stdio.h>2.void main() /* 辗转相除法求最大公约数 */3.{4.int m, n, a, b, t, c;5. printf("Input two integer numbers:\n");6. scanf("%d%d", &a, &b);7. m=a; n=b;8.while(b!=0) /* 余数不为0,继续相除,直到余数为0 */9. { c=a%b; a=b; b=c;}10. printf("The largest common divisor:%d\n", a);11. printf("The least common multiple:%d\n", m*n/a);12.}⑵相减法有两整数a和b:①若a>b,则a=a-b②若a<b,则b=b-a③若a=b,则a(或b)即为两数的最大公约数④若a≠b,则再回去执行①例如求27和15的最大公约数过程为:27-15=12( 15>12 ) 15-12=3( 12>3 )12-3=9( 9>3 ) 9-3=6( 6>3 )6-3=3( 3==3 )因此,3即为最大公约数[cpp]view plaincopy1.#include<stdio.h>2.void main ( ) /* 相减法求最大公约数 */3.{4.int m, n, a, b, c;5.printf("Input two integer numbers:\n");6. scanf ("%d,%d", &a, &b);m=a; n=b;7./* a, b不相等,大数减小数,直到相等为止。
*/8.while ( a!=b)9.if (a>b) a=a-b;10.else b=b-a;11. printf("The largest common divisor:%d\n", a);12. printf("The least common multiple:%d\n", m*n/a);13.}⑶穷举法有两整数a和b:① i=1②若a,b能同时被i整除,则t=i③ i++④若 i <= a(或b),则再回去执行②⑤若 i > a(或b),则t即为最大公约数,结束改进:① i= a(或b)②若a,b能同时被i整除,则i即为最大公约数,结束③ i--,再回去执行②有两整数a和b:① i=1②若a,b能同时被i整除,则t=i③ i++④若 i <= a(或b),则再回去执行②⑤若 i > a(或b),则t即为最大公约数,结束改进:① i= a(或b)②若a,b能同时被i整除,则i即为最大公约数,结束③ i--,再回去执行②1.#include<stdio.h>2.void main () /* 穷举法求最大公约数 */3.{4.int m, n, a, b, i, t;5. printf("Input two integer numbers:\n");6. scanf ("%d,%d", &a, &b);m=a; n=b;7.for (i=1; i<= a; i++)8.if ( a%i == 0 && b%i ==0 ) t=i;9. printf("The largest common divisor:%d\n", t);10. printf("The least common multiple:%d\n", m*n/t);11.}12./* 改进后的13. for (t= a; t>0; t-- )14. if ( a%t == 0 && b%t ==0 ) break;15.*/[cpp]view plaincopy1.//穷举法求最小公倍数2.for (i= a; ; i++ )3.if ( i % a == 0 && i % b ==0 ) break;4. printf("The least common multiple:%d\n", i )5.6.//多个数的最大公约数和最小公倍数7.for (i= a; i>0; i-- )8.if (a%i==0&&b%i==0&&c%i==0) break;9. printf("The largest common divisor:%d\n", i);10.for (i= a; ; i++ )11.if (i%a==0&&i%b==0&&i% c==0) break;12. printf("The least common multiple:%d\n", i )。