当前位置:文档之家› 输入两个正整数m和n,求最小公倍数,与最大公约数

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

第一周作业1输入两个正整数m和n, 求其最大公约数和最小公倍数. <1> 用辗转相除法求最大公约数算法描述: m对n求余为a, 若a不等于0 则m <- n, n <- a, 继续求余否则n 为最大公约数<2> 最小公倍数= 两个数的积/ 最大公约数#include int main(){int m, n; int m_cup, n_cup, res; /*被除数, 除数, 余数*/printf("Enter two integer:\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("Greatest common divisor: %d\n", n_cup);printf("Lease common multiple : %d\n", m * n / n_cup); }else printf("Error!\n");return 0;}2int sum = 0;int i=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<stdio.h>#include<malloc.h>void print(int *a,int n);void paixu(int *a,int n);void main(){int a[10];int i;printf("请输入10个整数:");for(i=0;i<10;i++)scanf("%d",&a[i]);paixu(a,i);//排序print(a,i);//输出}int swap(int *a,int *b)//交换{int t;t=*a;*a=*b;*b=t;}//冒泡排序,从大到小void paixu(int *a,int n){int i,j=0,k;printf("==========从大到小排序后=========\n");for(i=0;i<n-1;i++){for(j=1;j<n-i;j++)if(a[j-1]<a[j])swap(&a[j],&a[j-1]);}}void print(int *a,int n){int i;for(i=0;i<n;i++)printf("%d ",*(a+i));printf("\n");}2、用数组求Fibonacci数列前20个数。

#include<stdio.h>void main(){int i;int f[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<iostream>using namespace std;int greatest_c_divisor(int x,int y); //求最大公约数int least_c_multiple(int x,int y,int gcd); //求最小公倍数int main(){int x,y,gcd,lcm;cout<<"请输入两个正整数"<<endl;cin>>x>>y;gcd=greatest_c_divisor(x,y);lcm=least_c_multiple(x,y,gcd);cout<<"这两个数的最大公约数是"<<gcd<<"\n这两个数的最小公倍数是"<<lcm<<endl;}int greatest_c_divisor(int x,int y){int gcd;x>y?gcd=y:gcd=x; //两个数中的最小值 for(;x%gcd!=0||y%gcd!=0;gcd--);return gcd;}int least_c_multiple(int x,int y,int gcd){int lcm;lcm=x*y/gcd;return lcm;}2写一函数,用起泡法对输入的10个字符按从小到大顺序排列。

#include <stdio.h>void main(){int i, j, temp;int element[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 < end;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 < end;start++){printf("%d ", *start);}printf("\n");}第四周作业1、将数组a中的n个整数按相反顺序存放。

(要求用指针做)void inv(int *a, int n){int tmp;int i, j = n - 1;for (i = 0; i < j; i++) {tmp = *(a+i);*(a+i) = *(a+j);*(a+j) = tmp;j--;}}2输入3个学生各学4门课,计算总平均分,并查找一门以上课程不及格的学生,输出其各门课成绩。

(要求用指针做)#include "stdio.h"#include "stdlib.h"struct student{char name[10];int chinese;int english;int shuxue;int lishi;int sum;float avg;};void main(){struct student a[3];int i,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("%s chinese:%d english:%d shuxue:%d lishi:%d sum:%d avf%.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<stdio.h>struct men{int num;char name[8];char sex[8];float score;}boy[5];void input(){int i;for(i=0;i<5;i++){printf("Input the number:\n");scanf("%d",&boy[i].num);printf("Input the name:\n");scanf("%s",boy[i].name);printf("Input the sex:\n");scanf("%s",boy[i].sex);printf("Input the score:\n");scanf("%f",&boy[i].score);}}void output(){int i;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);}}int main(){void input();void output();input();output();return (0);}。

相关主题