首页 > 其他分享 >5.14打卡

5.14打卡

时间:2023-05-14 19:36:26浏览次数:46  
标签:分数 int zxgb 最大公约数 5.14 printf 打卡 分母

问题描述:

比较两个分数的大小

二、设计思路:
要求通分后的最简公分母,即求两分母的最小公倍数。求最小公倍数的前提是求出两数的最大公约数,最大公约数的求解采用辗转相除的方法,步骤如下:
(1)用较大的数m除以较小的数n,得到的余数存储到变量b中;b=m%n;
(2)上一步中较小的除数n和得出的余数b构成新的一对数,并分别赋值给m和n,继续做上面的除法;
(3)若余数为0,其中较小的数(即除数)就是最大公约数,否则重复步骤(1)和(2)。
对于最大公约数的求解用自定义函数zxgb实现。

通分后的分子为:通分后的分母/原分数分母*原分数分子,两分数的分母分别用变量j,1表示,分子用变量i,k表示。

只需比较变量m、n的值即可,若m>n;则第一个分数大于第二个分数,若m=n,则两分数相等,否则第一个分数小于第二个分数。

三、程序流程图

 

 

四、代码实现

#include<stdio.h>

int zxgb(int a,int b);

int main()

{

    int i,j,k,l,m,n;

    printf("Input two FENSHU:\n");

    scanf("%d/%d,%d/%d",&i,&j,&k,&l);

    m=zxgb(j,l)/j*i;

    n=zxgb(j,l)/l*k;

    if(m>n)

    printf("%d/%d>%d/%d\n",i,j,k,l);

        else

        if(m==n)

        printf("%d/%d=%d/%d\n",i,j,k,l);

    else

       printf("%d/%d<%d/%d\n",i,j,k,l);

}

int zxgb(int a,int b)

{

    long int c;

    int d;

    if(a<b)

    {

        c=a;

        a=b;

        b=c;

    }

    for(c=a*b;b!=0;)

    {

        d=b;

        b=a%b;

        a=d;

    }

    return (int)c/a;

}

 

标签:分数,int,zxgb,最大公约数,5.14,printf,打卡,分母
From: https://www.cnblogs.com/wanbeibei/p/17399939.html

相关文章

  • 打卡5.8——委派认为问题
    1.问题描述某项任务需要在A、B、C、D、E、F这6个人中挑选人来完成,但挑选人受限于以下的条件:(1)A和B两个人至少去一人;(2)A和D不能同时去;(3)A、E和F三人中要挑选两个人去;(4)B和C同时去或者都不去;(5)C和D两人中只能去一个;(6)如果D不去,那么E也不去。试编程求出应该让哪几个人......
  • 打卡5.6——求车速
    问题描述:一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859。两小时后里程表上出现了一个新的对称数,该数仍为五位数。问该车的速度是多少?新的对称数是多少?问题分析:对称数是95859,两小时后出现新的,这个数......
  • 打卡5.7——三色球问题
    1.问题描述一个口袋中放有12个球,已知其中3个是红的,3个是白的,6个是黑的,现从中任取8个,问共有多少种可能的颜色搭配?2.问题分析假设八个球,红球a个,白球b个,黑球c个,那么c=8-a-b个。而且a<=3,b<=3,也就是说8-a-b<=63.算法设计穷举法用两个for循环,第一个for控制红球的数量,第二个控制白......
  • 打卡5.5
    1.问题描述警察审问4名窃贼嫌疑犯。现在已知,这4人当中仅有一名是窃贼,还知道这4个人中的每个人要么是诚实的,要么总是说谎。这四个人回答如下甲:乙没有偷,是丁偷的乙:我没有偷,是丙偷的丙:甲没有偷,是乙偷的丁:我没有偷请根据这四个人的回答判断谁是窃贼2.问题分析四个人里面有一......
  • 第23天打卡
    问题:打印出所有256以下的回文数;流程图: 直接暴力枚举即可源代码:#include<stdio.h>intmain(){intm[16],n,i,t,count=0;longunsigneda,k;for(n=1;n<256;n++){k=0;t=1;a=n*n;for(i=0;a!=0;i++){m[i]=a%10;a/=10;}for(;i>0;i--){k+=m[i-1]*t;t*=10;}if(k......
  • 打卡第二十三天
    要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。一、1.运用if语句,将每种运算都写出来二、三、#include<stdio.h>intmain(){inta,b;charc;scanf("%d%c%d",&a,&c,&b);if(c=='+')printf("......
  • spring遇到的几个错误(5.14)
     先保存配置文件file→ProjectStructure→Modules 详细问题 ......
  • 5.14周报
    文献阅读(一)不确定市场需求下的制造业基地布局选址决策:【250】文献研读|区域经济|不确定市场需求下的制造业基地布局选址决策(qq.com)笔记地址:不确定市场需求下的制造业基地布局选址决策笔记-Spartaright-博客园(cnblogs.com)该文章提出了一种两阶段选址模型,主要涉及......
  • c++打卡第二十六天
    ①一、问题描述 二、设计思路①、我们可以定义long类型数,算出这个数的平方。②、我们可以判断这个数的位数,然后对平方数除余(数本身位数+1),得到一个余数,判断是否与自身数相等。③、如果相等就打印出来。三、流程图四、代码实现#include<iostream>#include<cmath>using......
  • 第22天打卡
    问题: 源代码:#include<stdio.h>intmain(){longmul,number,k,a,b;for(number=0;number<100000;number++){for(mul=number,k=1;(mul/=10)>0;k*=10);a=k*10;mul=0;b=10;while(k>0){mul=(mul+(number%(k*10))*(number%b-number%(b/10)))%a;k/=10;b*......