输入两个正整数m和n求最小公倍数与最大公约数.docx

上传人:b****8 文档编号:11151401 上传时间:2023-02-25 格式:DOCX 页数:11 大小:16.46KB
下载 相关 举报
输入两个正整数m和n求最小公倍数与最大公约数.docx_第1页
第1页 / 共11页
输入两个正整数m和n求最小公倍数与最大公约数.docx_第2页
第2页 / 共11页
输入两个正整数m和n求最小公倍数与最大公约数.docx_第3页
第3页 / 共11页
输入两个正整数m和n求最小公倍数与最大公约数.docx_第4页
第4页 / 共11页
输入两个正整数m和n求最小公倍数与最大公约数.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

输入两个正整数m和n求最小公倍数与最大公约数.docx

《输入两个正整数m和n求最小公倍数与最大公约数.docx》由会员分享,可在线阅读,更多相关《输入两个正整数m和n求最小公倍数与最大公约数.docx(11页珍藏版)》请在冰豆网上搜索。

输入两个正整数m和n求最小公倍数与最大公约数.docx

输入两个正整数m和n求最小公倍数与最大公约数

第一周作业

1输入两个正整数m和n,求其最大公约数和最小公倍数.<1>用辗转相除法求最大公约数算法描述:

m对n求余为a,若a不等于0则m<-n,n<-a,继续求余否则n为最大公约数<2>最小公倍数=两个数的积/最大公约数

#includeintmain()

{

intm,n;intm_cup,n_cup,res;/*被除数,除数,余数*/

printf("Entertwointeger:

\n");

scanf("%d%d",&m,&n);

if(m>0&&n>0)

  {

   m_cup=m;

   n_cup=n;

   res=m_cup%n_cup;

   while(res!

=0)

     {

      m_cup=n_cup;

      n_cup=res;

      res=m_cup%n_cup;

     }

    2、分别用三种循环语句(while语句、do-while语句、for语句),实现求1~100的累加和。

第2周的题目:

(要求用数组做)

 printf("Greatestcommondivisor:

%d\n",n_cup);

     printf("Leasecommonmultiple:

%d\n",m*n/n_cup);

   }

  elseprintf("Error!

\n");

  return0;

}

2intsum=0;

inti=0;

while(i<100)

{

sum+=(i+1);

i++;

}

printf("%d",sum);

i=0;

do

{

sum+=(i+1);

i++;

}while(i<=100)

printf("%d",sum);

for(i=1;i<=100;i++)

{

sum+=i;

}

printf("%d",sum);

第二周作业

1用冒泡法对输入的10个整数排序。

#include

#include

voidprint(int*a,intn);

voidpaixu(int*a,intn);

voidmain()

{

inta[10];

inti;

printf("请输入10个整数:

");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

paixu(a,i);//排序

print(a,i);//输出

}

intswap(int*a,int*b)//交换

{

intt;

t=*a;

*a=*b;

*b=t;

}

//冒泡排序,从大到小

voidpaixu(int*a,intn)

{

inti,j=0,k;

printf("==========从大到小排序后=========\n");

for(i=0;i

{

for(j=1;j

if(a[j-1]

swap(&a[j],&a[j-1]);

}

}

voidprint(int*a,intn)

{

inti;

for(i=0;i

printf("%d",*(a+i));

printf("\n");

}

2、用数组求Fibonacci数列前20个数。

#include

voidmain()

{

inti;

intf[20]={1,1};

for(i=2;i<20;i++)

f[i]=f[i-2]+f[i-1];

for(i=0;i<20;i++)

{

if(i%5==0)

printf("\n");

printf("%10d",f[i]);

}

printf("\n");

}

第三周作业

11、求两个正整数的最大公约数和最小公倍数,用一个函数求最大公约数。

用另一个函数根据求出的最大公约数求最小公倍数。

#include

usingnamespacestd;

intgreatest_c_divisor(intx,inty);//求最大公约数

intleast_c_multiple(intx,inty,intgcd);//求最小公倍数

intmain()

{

intx,y,gcd,lcm;

cout<<"请输入两个正整数"<

cin>>x>>y;

gcd=greatest_c_divisor(x,y);

lcm=least_c_multiple(x,y,gcd);

cout<<"这两个数的最大公约数是"<

}

 

intgreatest_c_divisor(intx,inty)

{

intgcd;

x>y?

gcd=y:

gcd=x;//两个数中的最小值

for(;x%gcd!

=0||y%gcd!

=0;gcd--);

returngcd;

}

intleast_c_multiple(intx,inty,intgcd)

{

intlcm;

lcm=x*y/gcd;

returnlcm;

}

2写一函数,用起泡法对输入的10个字符按从小到大顺序排列。

#include

voidmain()

{

inti,j,temp;

intelement[10];

int*start,*end;

printf("\n请输入10个数:

\n");

for(i=0;i<10;i++)

{

scanf("%d",&element[i]);

}

start=element;/*start指针指向数组的第一个元素*/

end=element+10;/*end指针指向数组的最后一个元素*/

printf("\n原始数组:

\n");

/*输出原始数组*/

for(;start

{

printf("%d",*start);

}

printf("\n\n排序后的数组:

\n");

/*输出排序后的数组*/

start=element;

for(i=10;i>0;i--)

{

for(j=10-i;j>0;j--)

{

if(*(start+j-1)>*(start+j))

{

temp=*(start+j-1);

*(start+j-1)=*(start+j);

*(start+j)=temp;

}

for(start=element;start

printf("%d",*start);

}

printf("\n");

}

第四周作业

1、将数组a中的n个整数按相反顺序存放。

(要求用指针做)

voidinv(int*a,intn)

{

inttmp;

inti,j=n-1;

for(i=0;i

tmp=*(a+i);

*(a+i)=*(a+j);

*(a+j)=tmp;

j--;

}

}

2输入3个学生各学4门课,计算总平均分,并查找一门以上课程不及格的学生,输出其各门课成绩。

(要求用指针做)

#include"stdio.h"

#include"stdlib.h"

structstudent

{

charname[10];

intchinese;

intenglish;

intshuxue;

intlishi;

intsum;

floatavg;

};

voidmain()

{

structstudenta[3];

inti,j,k;

for(i=0;i<3;i++)

{

scanf("%s%d%d%d%d",a[i].name,&a[i].chinese,&a[i].english,&a[i].shuxue,&a[i].lishi);

a[i].sum=a[i].chinese+a[i].english+a[i].shuxue+a[i].lishi;

a[i].avg=(a[i].chinese+a[i].english+a[i].shuxue+a[i].lishi)/3;

}

printf("\n");

for(i=0;i<3;i++)

{

if(a[i].chinese<60||a[i].english<60||a[i].shuxue<60||a[i].lishi<60)

{

printf("%schinese:

%denglish:

%dshuxue:

%dlishi:

%dsum:

%davf%.2f\n",a[i].name,a[i].chinese,a[i].english,a[i].shuxue,a[i].lishi,a[i].sum,a[i].avg);

}

}

}

第五周作业

1、编写一个函数input,用来输入5个学生的数据记录,再编写一个函数output,用来输出5个学生的数据记录,每个记录包括学号、姓名和3门课成绩。

下周1之前把写好的程序文件传回来给我(要求用结构体做)

#include

structmen

{

intnum;

charname[8];

charsex[8];

floatscore;

}boy[5];

voidinput()

{

inti;

for(i=0;i<5;i++)

{

printf("Inputthenumber:

\n");

scanf("%d",&boy[i].num);

printf("Inputthename:

\n");

scanf("%s",boy[i].name);

printf("Inputthesex:

\n");

scanf("%s",boy[i].sex);

printf("Inputthescore:

\n");

scanf("%f",&boy[i].score);

}

}

voidoutput()

{

inti;

for(i=0;i<5;i++)

{

printf("NUM\t\t\tNAME\t\t\tSEX\t\t\tSCORE\n");

printf("%d\t\t\t",boy[i].num);

printf("%s\t\t\t",boy[i].name);

printf("%c\t\t\t",boy[i].sex);

printf("%.2f\n\n",boy[i].score);

}

}

intmain()

{

voidinput();

voidoutput();

input();

output();

return(0);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1