输入两个正整数m和n求其最大公约数和最小公倍数
- 格式:doc
- 大小:25.50 KB
- 文档页数:10
输入两个正整数,m和n,求其最大公约数和最小公倍数。
1. 输入两个正整数,m和n,求其最大公约数和最小公倍数。
2. 输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。
3. 输入一个正整数求出它是几位数;输出原数和位数。
4. 输入一个正整数,输出原数并逆序打印出各位数字。
5. 从键盘上输入若干学生的一门课成绩,统计并输出最高成绩和最低成绩及相应的序号,当输入负数时结束输入。
6. 从键盘上输入若干学生的一门课成绩,计算出平均分,当输入负数时结束输入。
将结果输出。
7. 求1!+2!+3!+……+20!,将结果输出。
8. 打印以下图案: ****************9. 打印以下图案:**********10. 求下列试子的值:1-1/2+1/3-1/4+……+1/99-1/100,将结果输出。
11. 打印出100,999之间的所有水仙花数。
12. 求S(Sn)=a+aa+aaa+…+aa…a之值,n,a由键盘输入。
n13. 打印以下图案:****************************14.打印以下图案:112112321123432115. 打印以下图案:123432112321121116.编写一个统计学生成绩程序,完成以下功能:输入4个学生的2门课成绩;求出全班的总平均分,将结果输出。
17. 打印以下图案:*************************18.给出年、月、日,计算该日是该年的第几天。
19.求一个3*3的整型矩阵对角线元素之和。
将原矩阵和求出的和输出。
20.求一个4*3的矩阵各行元素的平均值;将原矩阵和求出的平均值全部输出。
21.求一个3*4的矩阵各列元素的平均值;将原矩阵和求出的平均值全部输出。
22.求一个3*5的矩阵各列元素的最大值,将原矩阵和求出的最大值全部输出。
23.求一个4*3的矩阵各行元素的最大值,将原矩阵和求出的最大值全部输出。
24.求一个M*N的矩阵中元素的最大值,将原矩阵和求出的最大值全部输出。
上机测试题目:1、输入两个正整数m,n,求其最大公约数和最小公倍数。
#include <iostream>using namespace std;int main ( ){int p,r,n,m,temp;cout<<"请输入两个正整数";cin>>n>>m;if (n<m){temp=n;n=m;m=temp;}p=n*m;while (m!=0){r=n%m;n=m;m=r;}cout<<"HCF="<<n<<endl;cout<<"LCD="<<p/n<<endl;return 0;}2、输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。
#include<iostream>using namespace std;int main(){char c;int letter=0,space=0,digit=0,other=0;cout<<"enter one line:"<<endl;while((c=getchar())!='\n'){if(c>='a'&& c<='z'||c>='A'&& c<='Z')letter++;else if (c==' ')space++;else if(c>='0'&&c<='9')digit++;elseother++;}cout<<"letter:"<<letter<<",space:"<<space<<",digit:"<<digit<<",other:"<<other<< endl;return 0;3、两个乒乓球队进行比赛,各出3人。
1、用下面的scanf函数输入数据,使a=10, b=20, c1='A', c2='a', x=1.5, y=-3.75, z=67.8,请问在键盘上如何输入数据?scanf("%5d%5d%c%c%f%f%*f,%f", &a,&b,&c1,&c2,&x,&y,&z);2、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf函数输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字第三次作业1、有3个整数a,b,c,由键盘输入,输出其中最大的数。
2、有一个函数:x x<1y= 2x-1 1<=x<103x-11 x>=10写一段程序,输入x,输出y的值。
3、给出一百分制成绩,要求输出成绩等级A、B、C、D、E。
90分以上为A,80-89分为B,70-79为C,60-69为D,60分以下为E。
4、给一个不多于5位的正整数,输出这个数是几位数。
第四次作业1、给一个不多于5位的正整数,要求:a.求出它是几位数;+b.分别输出每一位数字;c.按逆序输出各位数字,例如:原数为321,应输出123。
2、教材P112页第5.8题(if语句解法创建一个独立文件,switch语句解法创建一个独立文件第五次作业1、输入两个正整数m和n,求其最大公约数和最小公倍数。
(经典题)2、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数,并输出。
3、求s=a+aa+aaa+aaaa+....+(a...a)之值,其中a是一个数字,n表示a的位数。
1、输入两个字符串,使用指针p将两个字符串按次序复制到数组c中。
例:输入“zhe"和"jiang",将"zhejiang"保存在数组c中。
习题2参考答案一、基础题1.若二维数组a有m列,则在a[i][j]前的元素个数为:A)j*m+i B)i*m+jC)i*m+j-1 D)i*m+j+1B2.在C语言中(以16位PC机为例),五种基本数据类型存储空间长度的排列顺序是:A) char<int<long int<=float<doubleB) char=int<long int<=float<doubleC) char<int<long int=float=doubleD) char=int=long int<=float<doubleA3.在C语言的变量类型说明中,int,char,float等类型的长度是:A) 固定的B) 由用户自己定义的C) 任意的D) 与机器字长有关的D4. 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f的数据类型是:A) int型B)float型C) double型D)不确定C5.C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符:A) 必须为字母B) 必须为下划线C) 必须为字母或下划线D) 可以是字母,数字或下划线中的任意一种C6.设a=1,b=2,c=3,d=4,则表达式a<b?a:c<d?a:d的值是:A) 4 B) 3 C) 2 D) 1D7.以下程序的输出结果是:main(){ int a=12, b=12;printf("%d,%d\n",--a,++b);}A) 10,10 B) 12,12 C) 11,10 D) 11,13D8.若有代数式(3ae)/(bc),则下面不正确的C语言表达式是:A) a/b/c*e*3 B) 3*a*e/b/c C) 3*a*e/b*c D) a*e/c/b*3C9.已知x=43,ch='A',y=0,则表达式(x>=y&&ch<'B'&&!y)的值是:A) 0 B) 语法错C) 1 D) "假"C10.下面程序的输出结果是:main(){ int a=-1, b=4, k;k=(a++<=0)&&(!(b--<=0));printf("%d,%d,%d\n",k,a,b);}A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,3B11.已知字母A的ASCII码为十进制的65,下面程序的输出是:main(){ char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值A12.下面程序的输出的是main(){ int x=10,y=3;printf("%d\n",y=x/y);}A) 0 B) 1 C) 3 D) 不确定的值C二、程序设计题1.从键盘上输入一个小写字母,编程输出其对应的大写字母以及它们的十进制ASCII码。
1、题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?#include<stdio.h>int main(){for (int i = 1; i < 5; i++)for (int j = 1; j < 5; j++)for (int k = 1; k < 5; k++)if (i != j&&i != k&&j != k)printf("%d%d%d\n", i, j, k);return 0;}2、题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){float lirun;printf("请输入当月利润:\n");scanf("%f", &lirun);if (lirun <= 100000)printf("应发放金额总数:%f\n", lirun*0.1);else if (lirun <= 200000 && lirun > 100000){printf("应发放金额总数:%f\n", lirun*0.1 +(lirun - 100000)*0.075);}else if (lirun <= 400000 && lirun > 200000){printf("应发放金额总数:%f\n", lirun*0.1 +(lirun - 100000)*0.075 + (lirun - 200000)*0.005);}else if (lirun <= 600000 && lirun >400000){printf("应发放金额总数:%f\n", lirun*0.1 +(lirun - 100000)*0.075 + (lirun - 200000)*0.005+(lirun-400000)*0.03);}else if (lirun <= 1000000 && lirun >600000){printf("应发放金额总数:%f\n", lirun*0.1 +(lirun - 100000)*0.075 + (lirun - 200000)*0.005 +(lirun - 400000)*0.03+(lirun-600000)*0.015);}else if(lirun >1000000){printf("应发放金额总数:%f\n", lirun*0.1 +(lirun - 100000)*0.075 + (lirun - 200000)*0.005 +(lirun - 400000)*0.03 + (lirun - 600000)*0.015+(lirun-1000000)*0.01);}else{printf("利润为负,没有奖金!!!\n");}return 0;}3、题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?#include<stdio.h>#include<math.h>int main(){int i=0;//判断开方后的数强制转化为整型与不强制转化为整型的数是否相等while (!((int)sqrt(i+100)==sqrt(i+100)&&(int)sqrt(i+100+168)==sqrt(i+100+168))) {i++;}printf("%d\n", i);return 0;}void main(){long int i, x, y, z;for (i = 1; i<100000; i++){x = sqrt(i + 100); /*x为加上100后开方后的结果*/y = sqrt(i + 268); /*y为再加上168后开方后的结果*/if (x*x == i + 100 && y*y == i + 268) /*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/printf("\n%ld\n", i);}getchar();}4、题目:输入某年某月某日,判断这一天是这一年的第几天?#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){int year, month, day;printf("请输入年份:\n");scanf("%d", &year);printf("请输入月份:\n");scanf("%d", &month);printf("请输入日:\n");scanf("%d", &day);int days[] = { 31,28,31,30,31,30,31,31,30,31,30,31 };days[1] = (year % 4 == 0) ? 29 : 28;int sum = 0;for (int i = 0; i < month-1; i++)sum += days[i];sum += day;printf("%d年%d月%d日是第%d天\n", year, month, day, sum);return 0;}5、题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?6、题目:判断101-200之间有多少个素数,并输出所有素数。
求两个整数m,n的最大公约数,m和n由键盘输入.最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。
求两个正整数m和n的最大公约数可用欧几里德算法(辗转相除法)。
main(){int p,r,n,m,temp;printf("please enter 2 numbers n,m:");scanf("%d,%d",&n,&m);//输出两个正整数.if(n\ucm)//把大数放在n中,把小数放在m中.{temp=n;n=m;m=temp;}p=n*m;//p就是原来两个数n,m的乘积.while(m!=0)//求两个数n,m的最大公约数.{r=n%m;n=m;m=r;}printf("its maxgongyueshu:%d\\n",n);//打印最大公约数.printf("its mingongbeishu:%d\\n",p/n);列印最轻公倍数.原理用欧几里德算法(只身二者乘法)谋两个数的最大公约数的步骤如下:先用小的一个数除大的一个数,得第一个余数;再用第一个余数除大的一个数,得第二个余数;又用第二个余数除第一个余数,得第三个余数;这样逐次用后一个数除去前一个余数,直至余数就是0年才。
那么,最后一个除数就是所求的最大公约数(如果最后的除数就是1,那么原来的两个数就是互质数)。
由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。
这就是说,求两个数的最小公倍数,可以先求出两个数的最大公约数,再用这两个数的最大公约数去除这两个数的积,所得的商就是两个数的最小公倍数。
C语言课程设计专业:电气工程及其自动化班级:电气11姓名:学号:指导教师:兰州交通大学自动化与电气工程学院2012 年7月6日1 基本题目1.1题目编写函数,求取两个整数m,n的最大公约数和最小公倍数。
1.2 题目分析图1 程序流程图1.3 程序# include<stdio.h>int max(int a,int b);int main(){printf("请输入两个整数");int m,n,p;scanf("%d%d",&m,&n);p=m*n;printf("最大公约数为:%d最小公倍数为:%d\n",max(m,n),p/max(m,n));return 0;}int max(int a,int b){int c;while (a!=b){if(a<b){c=a;a=b;b=c;}a=a-b;}return b;}1.4 程序的运行结果图2 基本题目运行结果2 改错题目2.1 改正后程序#include <stdio.h>#include <conio.h>main(){int i=0,j;char ch;while((ch=getch())!='\r'){i++;printf("%c",ch);}printf("you type %d characters\n",i);}2.2 程序运行结果图3 正确程序运行结果3 综合题目3.1 题目综合题目为:《班级通讯录》。
3.2 数据结构对上述题目进行分析,定义结构体数据结构如下:struct Person{char name[10]; //姓名char num[15]; //号码char age[8]; //年龄char adds[20]; //住址struct Person *next;};3.3 程序的主要功能通过该系统实现对通讯录信息进行录入、显示、修改、删除、排序、保存等操作的管理。
java第一次作业题目2021版1. 题目:从键盘上输入两个正整数m和n,求其最大公约数和最小公倍数,必须判断输入数的正确性(比如非正整数等必须提示)。
[选题人数:3] 2. 题目:给出一个月的总天数编写程序,提示用户输入月份和年份,然后显示这个月的天数。
例如,如果用户输入的月份是2而年份是2000,那么程序应显示“2000年2月有29天”。
如果用户输入的月份为3而年份为2021,那么程序就应该显示“2021年3月有31天”。
(提示:必须判断是否是闰年) [选题人数:3]3. 题目:计算一个三角形的周长编写程序,提示用户从键盘输入三角形的三条边,如果输入值合法就计算这个三角形的周长,否则,显示这些输入值不合法(如果任意两条边的和大于第三条边,那么输入值都是合法的)。
[选题人数:3] 4. 题目:奖金发放问题企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?[选题人数:3]5. 题目:打印金字塔形的数字编写一个嵌套的for循环,打印下面的输出。
1 2 1 1 2 4 2 1 1 2 4 8 4 2 1 1 2 4 8 168 4 2 11 2 4 8 16 32 16 8 4 2 11 2 4 8 16 32 64 32 16 8 4 2 11 2 4 8 16 32 64 128 64 32 16 8 4 2 1[选题人数:2] 6. 题目:十进制转换成二进制或十六进制编写程序,从键盘上输入一个十进制整数,然后显示对应的二进制值或十六进制值。
河工大C语言大题绝版答案1.有一函数:当x<0时,y=-1;当x=0时,y=0;当x>0时,y=1。
编一程序,输入x的值,输出y的值。
#include <stdio.h>void main(){int x,y;printf("请输入x:");scanf("%d",&x);if(x<0)y=1;else if(x=0)y=0;elsey=1;printf("y=%d\n",y);return 0;}2.输入三个实数,将这三个数按由大到小的顺序排列,并输出这三个数。
#include <stdio.h>void main(){int a,b,c,temp=0;printf("请输入三个数a,b,c:");scanf("%d,%d,%d",&a,&b,&c);printf("a=%d,b=%d,c=%d,",a,b,c);if (a<b){ temp=a;a=b;b=temp;}if (a<c){ temp=a;a=c;c=temp;}if (b<c){ temp=b;b=c;c=temp;}printf("排序结果如下: \n");printf("%d %d %d \n" ,a,b,c);return 0;}3.有三个整数a,b,c,由键盘输入,输出其中最大者#include <stdio.h>void main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max);return 0;}4.编程求圆面积、圆周长。
第四章4.1统计全单位人员的平均工资,单位人数不固定,工资数从键盘先后输入,当输入-1时表示输入结束。
//程序1 用if语句#include<stdio.h>int main(){ int n=0;float gz=0,sum=0,pj;printf("请输入职工工资(数据用空格分隔,输入-1结束输入):\n");while(gz!=-1){scanf("%f",&gz);if(gz==-1)break;sum=sum+gz;n++;}pj=sum/n;printf("平均工资是:%10.2f\n",pj);return 0;} //注意,如gz定义成double(双精度),则输入数据后要用加.0,如最后的-1要用-1.0的形式输入,否则出错。
4.2 一个单位下设三个班组,每个班组人数不固定。
需要统计每个班组的平均工资。
分别输入三个班组所有职工工资,当输入-1时,表示该班组的输入结束。
输入出班组号和该班组的平均工资#include<stdio.h>int main (){int gz,i,n;float sum,pj;for(i=1;i<=3;i++){/*外循环控制班组序号*/n=0;gz=0;sum=0;printf("请输入第%d组的职工工资(数据用空格分隔,输入-1结束输入):\n",i);while(gz!=-1){ /*内循环计算班组平均工资*/scanf("%d",&gz);if(gz==-1)break;/*判断是输入结束标识,则跳出循环,数据不累加,也不记人数*/sum=sum+gz;n++;}pj=sum/n; /*根据工资累加数和总人数求平均值*/printf("第%d组的平均工资是:%10.2f\n",i,pj);}return 0;}4.3百元买百鸡:公鸡每只值5元,母鸡每只值3元,小鸡3只值1元。
JAVA经典算法题目(含答案)【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....publicclae某p2{publictaticvoidmain(Stringarg[]){inti=0;for(i=1;i<=20;i++)Sytem.out.println(f(i));}publictaticintf(int某){if(某==1||某==2)return1;elereturnf(某-1)+f(某-2);}}或publicclae某p2{publictaticvoidmain(Stringarg[]){inti=0;mathmymath=newmath();for(i=1;i<=20;i++)Sytem.out.println(mymath.f(i));}}clamath{publicintf(int某){if(某==1||某==2)return1;elereturnf(某-1)+f(某-2);}}【程序2】题目:打印出所有的\水仙花数\,所谓\水仙花数\是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个\水仙花数\,因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
publicclae某p2{publictaticvoidmain(Stringarg[]){inti=0;mathmymath=newmath();for(i=100;i<=999;i++)if(mymath.hui某ianhua(i)==true)Sytem.out.println(i);}}clamath{publicintf(int某){if(某==1||某==2)return1;elereturnf(某-1)+f(某-2);}publicbooleanizhihu(int某){for(inti=2;i<=某/2;i++)if(某%2==0)returnfale;returntrue;}publicbooleanhui某ianhua(int某){inti=0,j=0,k=0;i=某/100;j=(某%100)/10;k=某%10;if(某==i某i某i+j某j某j+k某k某k)returntrue;elereturnfale;}}【程序3】题目:判断101-200之间有多少个素数,并输出所有素数。
考试题1---------一、客观题。
1.()是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从()开始执行。
A、程序中第一条可执行语句B、程序中第一个函数C、程序中的main函数D、包含文件中的第一个函数3.下列正确的标识符是()。
A、-a1B、a[i]C、a2_iD、int t4.C语言中的简单数据类型包括()。
A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型C、整型、字符型、逻辑型D、整型、实型、字符型5.如果int a=3,b=4;则条件表达式"a<b? a:b"的值是()。
A、3B、4C、0D、16.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是()A、b=1.0/aB、b=(float)(1/a)C、b=1/(float)aD、b=1/(a*1.0)7.以下对一维数组a的正确说明是:()。
A、char a(10)B、 int a[];C、int k=5,a[k];D、char a[3]={‘a’,’b’,’c’};8.若有以下数组说明,则i=10;a[a[i]]元素数值是()。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};A.10B.9C.6D.59.下列数据结构中,属于非线性结构的是()。
A、循环队列B、带链队列C、二叉树D、带链栈10.C语言中函数返回值的类型是由()决定的。
A、函数定义时指定的类型B、return语句中的表达式类型C、调用该函数时的实参的数据类型D、形参的数据类型11.以下对结构变量stul中成员age的非法引用是()。
struct student{ int age;int num;}stu1,*p;p=&stu1;A、 stu1.ageB、 student.ageC、 p->ageD、 (*p).age12.设有如下定义:struck sk{ int a;float b;}data;int *p;若要使P指向data中的a域,正确的赋值语句是()。
C语言程序设计课程设计专业:电气工程及其自动化班级:电气1203姓名:熊董学号: 201209837指导教师:王思华兰州交通大学自动化与电气工程学院2013 年07月 20日1、基础题1.1题目编写函数,求取两个整数m,n的最大公约数和最小公倍数。
1.2题目分析求两个整数的最大公约数和最小公倍数可以用辗转相除法,用两个函数max 和min分别求出最大公约数和最小公倍数。
在主函数中输入两个整数m和n,并传递给函数max,求出最大公约数返回主函数并赋给整型变量h,然后h和两个整数m,n 一起作为实参传递给函数min,从而求出最小公倍数,返回主函数赋给l。
输出最大公约数和最小公倍数。
主函数:N-S图如图一max函数:N-S图如图二min函数:N-S图如图三图三min函数1.3源程序#include<stdio.h>int main(){ int max(int,int);int min(int,int,int);int m,n,h,l;scanf("%d,%d",&m,&n);h=max(m,n);printf("最大公约数是%d\n",h);l=min(m,n,h);printf("最小公倍数是%d\n",l);return 0;}int max(int m,int n){ int t,r;if(n>m);{t=m;m=n;n=t;}while((r=m%n)!=0){m=n;n=r;}return(n);}int min(int m,int n,int h){return(m*n/h);}1.4程序运行结果如图四:图四基础题运行截图2、改错题2.1题目#include <stdio.h> #include <conio.h> void fun(int a, b) {int t;t = b; b = a ; a = t; }main( ) {int a, b; clrscr( );printf("Enter a,b :"); scanf("%d%d", &a, &b); fun(&a, &b);printf("a=%d b=%d\n", a, b); }2.2题目分析该源程序的目的是交换两个数的值,有主函数可以看出该函数是应用指针交换两个数的值。
输入两个正整数m和n,求其最大公约数和最小公倍数。
1.求两个正整数m和n的最大公约数可以使用辗转相除法。
例如:m=24,n=18辗转相除法是这样进行的:24/18=1(余6)18/6=0(余0)因此,我们可以用while循环,以余数不等于零作为判断条件,再定义一个变量t赋值给m,n等于m与n相除的余数,m等于变量t,这样就达到了m与n互换的目的,从而让m作为下次相除时的被除数,如此反复,最后返回m即可。
2.求最小公倍数的求法:m*n=最大公约数*最小公倍数,所以我们只需用m*n/最大公约数即可得到最小公倍数。
public class Work {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("Enter m :");int m = sc.nextInt();System.out.println("Enter n :");int n = sc.nextInt();int i = CommonDivisors(m, n);//用一个变量接受mSystem.out.println("Common divisors is: " + CommonDivisors(m, n)+",Common multiples is: "+m*n/i);//m*n/最大公约数}public static int CommonDivisors(int m, int n) {if (n > m) {int term = n;n = m;m = term;}while (n != 0) {if (m == n) {return n;}int t = n;//达到了m与n互换的目的n = m % n;m = t;//m作为下一次两数相除时的被除数}return m;}}。
C语言课程设计专业:电气工程及其自动化班级:电气11姓名:学号:指导教师:兰州交通大学自动化与电气工程学院2012 年7月6日C程序设计课程设计报告1 基本题目1.1题目编写函数,求取两个整数m,n的最大公约数和最小公倍数。
1.2 题目分析图1 程序流程图1.3 程序# include<stdio.h>int max(int a,int b);int main(){printf("请输入两个整数");int m,n,p;scanf("%d%d",&m,&n);p=m*n;printf("最大公约数为:%d最小公倍数为:%d\n",max(m,n),p/max(m,n));return 0;}int max(int a,int b){int c;while (a!=b){if(a<b){c=a;a=b;b=c;}a=a-b;}return b;}1.4 程序的运行结果图2 基本题目运行结果2 改错题目2.1 改正后程序#include <stdio.h>#include <conio.h>main(){int i=0,j;char ch;while((ch=getch())!='\r'){i++;C程序设计课程设计报告printf("%c",ch);}printf("you type %d characters\n",i);}2.2 程序运行结果图3 正确程序运行结果3 综合题目3.1 题目综合题目为:《班级通讯录》。
3.2 数据结构对上述题目进行分析,定义结构体数据结构如下:struct Person{char name[10]; //姓名char num[15]; //号码char age[8]; //年龄char adds[20]; //住址struct Person *next;};3.3 程序的主要功能通过该系统实现对通讯录信息进行录入、显示、修改、删除、排序、保存等操作的管理。
输入两个正整数,m和n,求其最大公约数和最小公倍数。
1. 输入两个正整数,m和n,求其最大公约数和最小公倍数。
2. 输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。
3. 输入一个正整数求出它是几位数;输出原数和位数。
4. 输入一个正整数,输出原数并逆序打印出各位数字。
5. 从键盘上输入若干学生的一门课成绩,统计并输出最高成绩和最低成绩及相应的序号,当输入负数时结束输入。
6. 从键盘上输入若干学生的一门课成绩,计算出平均分,当输入负数时结束输入。
将结果输出。
7. 求1!+2!+3!+……+20!,将结果输出。
8. 打印以下图案: ****************9. 打印以下图案:**********10. 求下列试子的值:1-1/2+1/3-1/4+……+1/99-1/100,将结果输出。
11. 打印出100,999之间的所有水仙花数。
12. 求S(Sn)=a+aa+aaa+…+aa…a之值,n,a由键盘输入。
n13. 打印以下图案:****************************14.打印以下图案:112112321123432115. 打印以下图案:123432112321121116.编写一个统计学生成绩程序,完成以下功能:输入4个学生的2门课成绩;求出全班的总平均分,将结果输出。
17. 打印以下图案:*************************18.给出年、月、日,计算该日是该年的第几天。
19.求一个3*3的整型矩阵对角线元素之和。
将原矩阵和求出的和输出。
20.求一个4*3的矩阵各行元素的平均值;将原矩阵和求出的平均值全部输出。
21.求一个3*4的矩阵各列元素的平均值;将原矩阵和求出的平均值全部输出。
22.求一个3*5的矩阵各列元素的最大值,将原矩阵和求出的最大值全部输出。
23.求一个4*3的矩阵各行元素的最大值,将原矩阵和求出的最大值全部输出。
24.求一个M*N的矩阵中元素的最大值,将原矩阵和求出的最大值全部输出。
25.判断一个N*N的矩阵是否为对称矩阵,将原矩阵输出,判断结果输出。
26.有一篇文章,有三行文字,每行有80个字符。
要求统计出其中英文大写字母、消协字母、数字、空格以及其他字符的个数。
27.将20个整数放到一维数组中,输出该数组的最大值和最小值。
28.将15个整数放到一维数组中,输出该数组中的最大值它的下标,然后将它和数组中的最前面的元素对换。
29.将字符数组str1种下标为偶数的元素赋给另一字符数组str2,并输出str1和str2。
30.编写一个程序,将两个字符串连接起来,不要使用strcat函数。
31.编写一个程序,将字符数组a中的全部字符复制到字符数组b中。
不要使用strcpy函数。
32.编写一个程序,找出3个字符串中的最大者,将它输出。
33.编写程序,输入任意一个1,7之间的整数,将他们转换成对应的英文单词。
例如:1转换成Monday,7转换成Sunday。
34.编写程序,输入两个整数,和+、-、*、/之中的任意一个运算符,输出计算结果。
35.输入年号,计算这一年的2月份的天数,将结果输出。
36.输入三角形的三边a,b,c,判断a,b,c,能否构成三角形,若能,计算面积。
37. 输入三角形的三边a,b,c,判断a,b,c,能否构成三角形,何种类型的三角形:等腰、等边、直角、等腰直角、一般。
38.输入奖金数a,计算并输出税率、应缴税款和实得奖金数。
(用if语句编程)39.输入奖金数a,计算并输出税率、应缴税款和实得奖金数。
(用switch语句编程) 40.输入学生的成绩,利用计算机将学生的成绩划分出等级并输出: 90,100:A级; 80,89:B级; 70,79:C级; 60,69:D级; 0,59:E级;241.编程序,求方程aX+bX+c=0的解;输入a,b,c.42.编程序,输入4个整数,按由小到大的顺序输出。
43.求满足1+2+3+…+n<500中最大的N,并求其和,编写程序实现。
44.把100,200之间的不能被3整除的数输出。
45.求Fibonacci数列前40个数,每行输出5个,将40个Fibonacci数输出。
46.按以下规律翻译密码:将每一个字母变成它后面的字母,例如,将A变成B,B变成C,…,Z变成A,非字母字符不变,“!”作为电文结束标志。
47.百元买百鸡问题:公鸡每只5元,母鸡每只3元,小鸡3只一元,问一百元买一百只鸡有几种买法。
48.使用数组编程,计算出前20项fibonacci数列,要求一行打印5个数。
49.编程序求出两个3*4矩阵的和并将原矩阵和求出的和矩阵按原矩阵的形式分别输出。
50.将一个4*3的矩阵转置,并将原矩阵和求出的转置矩阵按原矩阵的形式分别输出。
51.输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是小写字母,则把它变成大写字母;其它字符不变,请编程。
52.已知x和y存在下列对应关系,要求对输入的每个x值,计算出y值,请编程。
y=x*(x+2),2<x<=10; y=2x, -1<x<=2; y=x-1, x<=-1.53.已知x和y存在下列对应关系,要求对输入的每个x值,计算出y值,请编程。
y=0,x=a||x=-a; y=sqrt(a*a-x*x), -a<x<a; y=x,x<-a||x>a.54.编程判断对输入的任何一个年份是否是闰年,将结果输出。
222255.请编制程序要求输入整数a和不,若a+b大于100,则输出a+b百位以上的数字,否则输出两数之和。
56.请编制程序判断输入的正整数是否既是5又是7的整倍数。
若是,则输出yes;否则输出no.57.编程实现:计算1到100之间的奇数之和及偶数之和。
58.请编程实现:求100个任意整数的累加和。
59.请编程实现:求1到100之间所有能被3整除,但不能被5整除的数的和。
60.请编程实现:输入任意正整数n,计算n!并将结果输出,输出结果中没有小数部分。
61.请编程实现:计算1至50中是7的倍数的数值之和。
62.请编程实现:对任意100个整数,统计0的个数及正数的累加和。
63.请编程实现:输入两个整数,判断它们之间的关系(=,<,>等),并清楚地将比较结果输出。
64.请编程实现:输入几个整数,判断其中偶数的个数,并输出结果(要求:数据的个数及原始数据由键盘输入)。
65.请编程实现:输入几个整数,判断其中奇数的个数,并输出奇数的累加和。
(要求:数据的个数及原始数据由键盘输入)66.有一个两位数XY,X是十位,Y是个位;给出X+Y的值和X*Y的值;编程实现让用户猜测这个两位数十多少,根据猜测给出不同的提示。
67.键盘输入的一个两位数XY,X是十位,Y是个位;请编程计算X+Y的值和X*Y的值。
68.用for循环语句计算1到20的和,并将结果输出。
69.从键盘输入一行字符,统计出输入的字符个数(注:不要使用strlun函数编程)。
70.编程实现:任意输入10个数,计算所有正数的和,负数的和以及10个数的和。
71.编程实现:求任意20个数中的正数之和及正数的个数,并将结果输出。
72.编程实现:对键盘输入的任意一个四位正整数,计算各位数字平方和。
2222如:2345 则:计算2+3+4+573.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完,请编程。
74.编程实现:打印100以内个位数为6且能被3整除的所有数。
75.编程实现:从键盘输入若干个整数(数据个数应不少于50),其值在0至4的范围内,用-1作为输入结束的标志,统计每个整数的个数。
76.编写一个函数sort,将放到一维数组中的若干个数按从大到小的顺序排序;在主函数中输入若干个数到一个一维数组中,调用sort,对该数组进行排序,在主函数中将原数组和排好序的数组输出。
77.输入一个正整数,将其用质因子的乘积表示,并输出结果,格式为:12=2×2×3。
78.输入一个正整数,求出它的质因子的和,并输出结果,格式为:12的质因子和=2+2+3=7。
79.编写一个函数,判断一个正整数是否为完数:如果一个数的除它本身以外的所有因数之和等于它本身,则它就是完数。
主函数中找出1000以内的所有完数。
80.编写函数GCD,求两个正整数的最大公约数,主函数中输入任意5个正整数,调用函数GCD,求出这5个数的最大公约数和最小公倍数。
81.编函数isprime判断正整m是否为素数;如果是素数,返回正整数1,否则返回0;主函数中调用isprime,找出2到1000之间的所有素数。
82.一维数组a中的若干个数已按从小到大的顺序有序;在主函数中输入一个数,将其插入到该数组中,使得原数组依然按原序有序,分别输入原数组和插入新元素之后的数组。
83.有5个国家名,编程实现按字母先后顺序排序,然后分别输出原数组和排序之后的数组。
84.有一行文字,要求删去其中的某个字符,此行文字和要删的字符均由键盘输入,分别输出原文字和删除之后的文字(注:原文字中的所有和要删除字符相同的字符完全删除)。
85.打印如图所示的杨辉三角,要求打印出n行,n由键盘输入。
11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1………86.编一个函数实现将一个整型的一维数组中的数逆序存放,不使用辅助数组。
主函数输入一个整型的一维数组,调用上述函数,将该数组逆置,将结果输出。
87.编写一个函数convert,求一个方阵的转置矩阵;主函数中输入方阵的阶数和方阵,在主函数中将原矩阵和转置矩阵按原格式输出。
-588.求?值,精度为10:?/4?1-1/3+1/5-1/7+……-689.用公式计算:e?1+1/1!+1/2! …+1/n!,精度为10。
90.有一分数序列2/1,3/2,5/3,8/5,13/8,21/13求该序列的前20项之和。
91.编一个子函数GCD,求两个正整数的最大公约数,主程序输入n个自然数,调GCD,求出这n个数的最大公约数。
35792.写函数求sin(x)的值。
计算公式为:Sin(x)=X-X/3!+X/5!-X/7!+ …n-12n-1+(-1)X/(2n-1)!。
93.编一函数使用冒泡法对若干个整数按从小到大的顺序排序,主函数中输入若干个整数到一个一维数组中,调用排序函数,将其排序,最后将原数组和排好序的数组输出。
94.求一个m行n列的二维数组中的这样一个原素;它在它所在的行为最大,在它所在的列为最小。
95.编写一个函数求给定字符串长度,主函数中输入一个字符串,调用该子函数,求出该字符串的长度,输出。