输入两个正整数m和n求最小公倍数与最大公约数Word格式.docx
《输入两个正整数m和n求最小公倍数与最大公约数Word格式.docx》由会员分享,可在线阅读,更多相关《输入两个正整数m和n求最小公倍数与最大公约数Word格式.docx(11页珍藏版)》请在冰点文库上搜索。
![输入两个正整数m和n求最小公倍数与最大公约数Word格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/d0c8f352-4533-44c2-98a6-e3e5765de258/d0c8f352-4533-44c2-98a6-e3e5765de2581.gif)
0)
{
m_cup=m;
n_cup=n;
res=m_cup%n_cup;
while(res!
=0)
m_cup=n_cup;
n_cup=res;
}
2、分别用三种循环语句(while语句、do-while语句、for语句),实现求1~100的累加和。
第2周的题目:
(要求用数组做)
Greatestcommondivisor:
%d\n"
n_cup);
Leasecommonmultiple:
m*n/n_cup);
}
elseprintf("
Error!
return0;
2intsum=0;
inti=0;
while(i<
100)
sum+=(i+1);
i++;
%d"
sum);
i=0;
do
}while(i<
=100)
for(i=1;
i<
=100;
i++)
sum+=i;
第二周作业
1用冒泡法对输入的10个整数排序。
#include<
stdio.h>
malloc.h>
voidprint(int*a,intn);
voidpaixu(int*a,intn);
voidmain()
inta[10];
inti;
printf("
请输入10个整数:
"
for(i=0;
i<
10;
i++)
scanf("
&
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;
==========从大到小排序后=========\n"
n-1;
{
for(j=1;
j<
n-i;
j++)
if(a[j-1]<
a[j])
swap(&
a[j],&
a[j-1]);
}
voidprint(int*a,intn)
n;
printf("
%d"
*(a+i));
2、用数组求Fibonacci数列前20个数。
intf[20]={1,1};
for(i=2;
20;
f[i]=f[i-2]+f[i-1];
if(i%5==0)
%10d"
f[i]);
第三周作业
11、求两个正整数的最大公约数和最小公倍数,用一个函数求最大公约数。
用另一个函数根据求出的最大公约数求最小公倍数。
iostream>
usingnamespacestd;
intgreatest_c_divisor(intx,inty);
//求最大公约数
intleast_c_multiple(intx,inty,intgcd);
//求最小公倍数
intmain()
intx,y,gcd,lcm;
cout<
<
请输入两个正整数"
endl;
cin>
>
x>
y;
gcd=greatest_c_divisor(x,y);
lcm=least_c_multiple(x,y,gcd);
这两个数的最大公约数是"
gcd<
\n这两个数的最小公倍数是"
lcm<
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<
inti,j,temp;
intelement[10];
int*start,*end;
\n请输入10个数:
\n"
for(i=0;
i<
10;
scanf("
element[i]);
start=element;
/*start指针指向数组的第一个元素*/
end=element+10;
/*end指针指向数组的最后一个元素*/
\n原始数组:
/*输出原始数组*/
start<
end;
start++)
*start);
\n\n排序后的数组:
/*输出排序后的数组*/
start=element;
for(i=10;
i>
0;
i--)
for(j=10-i;
j>
j--)
if(*(start+j-1)>
*(start+j))
temp=*(start+j-1);
*(start+j-1)=*(start+j);
*(start+j)=temp;
for(start=element;
start++){
第四周作业
1、将数组a中的n个整数按相反顺序存放。
(要求用指针做)
voidinv(int*a,intn)
inttmp;
inti,j=n-1;
for(i=0;
j;
i++){
tmp=*(a+i);
*(a+i)=*(a+j);
*(a+j)=tmp;
j--;
2输入3个学生各学4门课,计算总平均分,并查找一门以上课程不及格的学生,输出其各门课成绩。
#include"
stdio.h"
stdlib.h"
structstudent
charname[10];
intchinese;
intenglish;
intshuxue;
intlishi;
intsum;
floatavg;
};
structstudenta[3];
inti,j,k;
3;
%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;
if(a[i].chinese<
60||a[i].english<
60||a[i].shuxue<
60||a[i].lishi<
60)
%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之前把写好的程序文件传回来给我(要求用结构体做)
structmen
intnum;
charname[8];
charsex[8];
floatscore;
}boy[5];
voidinput()
5;
Inputthenumber:
boy[i].num);
Inputthename:
%s"
boy[i].name);
Inputthesex:
boy[i].sex);
Inputthescore:
%f"
boy[i].score);
voidoutput()
NUM\t\t\tNAME\t\t\tSEX\t\t\tSCORE\n"
%d\t\t\t"
boy[i].num);
%s\t\t\t"
%c\t\t\t"
%.2f\n\n"
boy[i].score);
voidinput();
voidoutput();
input();
output();
return(0);