结构-02. 有理数加法

 1 /*
 2  * Main.c
 3  * F2-结构-02. 有理数加法
 4  *  Created on: 2014年8月25日
 5  ********测试通过*********
 6  */
 7
 8 #include <stdio.h>
 9 /**
10  * 有理数结构体
11  */
12 struct rationalNumber{
13         int numerator;
14         int denominator;
15     };
16 /**
17  * 最大公约数
18  */
19 int greatCommonDivisor(int m,int n){
20     int i;
21     for(i=(m<n?m:n);i>1;i--){
22         if(m%i==0&&n%i==0)
23             break;
24     }
25     return i;
26 }
27
28 int main(void){
29
30     struct rationalNumber num1,num2,num3;
31     scanf("%d/%d %d/%d",&num1.numerator,&num1.denominator,&num2.numerator,&num2.denominator);
32
33     //通分求和并赋值于num3
34     num3.numerator =num1.numerator*num2.denominator + num2.numerator*num1.denominator;
35     num3.denominator = num1.denominator*num2.denominator;
36
37     //约分
38     int gcd = greatCommonDivisor(num3.numerator,num3.denominator);
39     num3.numerator/=gcd;
40     num3.denominator/=gcd;
41
42     //输出结果
43     if(num3.denominator==1)
44         printf("%d\n",num3.numerator);
45     else
46         printf("%d/%d\n",num3.numerator,num3.denominator);
47
48     return 0;
49 }

题目链接:

http://pat.zju.edu.cn/contests/basic-programming/%E7%BB%93%E6%9E%84-02

参考引用:

http://blog.csdn.net/rabbit8848/article/details/30283935

.

时间: 2024-10-13 11:16:22

结构-02. 有理数加法的相关文章

结构-02. 有理数加法(15)

本题要求编写程序,计算两个有理数的和. 输入格式: 输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数. 输出格式: 在一行中按照“a/b”的格式输出两个有理数的和.注意必须是该有理数的最简分数形式,若分母为1,则只输出分子. 输入样例1: 1/3 1/6 输出样例1: 1/2 输入样例2: 4/3 2/3 输出样例2: 2 #include <stdio.h> #include <stdlib.h> #include &

结构-01. 有理数比较

结构-01. 有理数比较(10) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 乔林(清华大学) 本题要求编写程序,比较两个有理数的大小. 输入格式: 输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数. 输出格式: 在一行中按照“a1/b1 关系符 a2/b2”的格式输出两个有理数的关系.其中“>”表示“大于”,“<”表示“小于”,“=”表示“等于”. 输入样例1:

*结构-05. 有理数均值

1 /* 2 * Main.c 3 * F5-结构-05. 有理数均值 4 * Created on: 2014年8月26日 5 * Author: Boomkeeper 6 *********部分通过*浮点错误****** 7 */ 8 9 #include <stdio.h> 10 /** 11 * 有理数结构体 12 */ 13 struct rational { 14 int numerator; 15 int denominator; 16 }; 17 /** 18 * 最大公约数

结构-05. 有理数均值(20)

本题要求编写程序,计算N个有理数的平均值. 输入格式: 输入第1行给出正整数N(<=100):第2行中按照“a1/b1 a2/b2 ……”的格式给出N个分数形式的有理数,其中分子和分母全是整形范围内的整数:如果是负数,则负号一定出现在最前面. 输出格式: 在一行中按照“a/b”的格式输出N个有理数的平均值.注意必须是该有理数的最简分数形式,若分母为1,则只输出分子. 输入样例1: 4 1/2 1/6 3/6 -5/10 输出样例1: 1/6 输入样例2: 2 4/3 2/3 输出样例2: 1 1

结构-01. 有理数比较(10)

本题要求编写程序,比较两个有理数的大小. 输入格式: 输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数. 输出格式: 在一行中按照“a1/b1 关系符 a2/b2”的格式输出两个有理数的关系.其中“>”表示“大于”,“<”表示“小于”,“=”表示“等于”. 输入样例1: 1/2 3/4 输出样例1: 1/2 < 3/4 输入样例2: 6/8 3/4 输出样例2: 6/8 = 3/4 #include <stdio.h&g

结构-01. 有理数比較(10)

本题要求编敲代码,比較两个有理数的大小. 输入格式: 输入在一行中依照"a1/b1 a2/b2"的格式给出两个分数形式的有理数,当中分子和分母全是整形范围内的正整数. 输出格式: 在一行中依照"a1/b1 关系符 a2/b2"的格式输出两个有理数的关系.当中">"表示"大于","<"表示"小于"."="表示"等于". 输入例子1: 1/

(转载)你好,C++(23) 4.4.2 工资程序成长记:用数组处理批量数据,用循环结构执行重复动作

你好,C++(23) 4.4.2 工资程序成长记:用数组处理批量数据,用循环结构执行重复动作 4.4  从语句到程序 了解了各种表达式和语句之后,就相当于掌握了写作文要用到的词语和句子,但是,仅有词语和句子是无法构成一篇有意义的文章的.要完成一篇文章,先需要确定这篇文章的结构,是先分述再总述,还是逐层递进论述.定好结构后再按照结构的要求将词语和句子安排到合适的位置,这样才能写出一篇有意义的词句通顺的文章.编写程序就像写文章一样,也同样需要先根据需要处理的事务确定程序的流程控制结构,然后再将那些零

你好,C++(23) 4.4.2 工资程序成长记:用数组处理批量数据,用循环结构执行重复动作

4.4  从语句到程序 了解了各种表达式和语句之后,就相当于掌握了写作文要用到的词语和句子,但是,仅有词语和句子是无法构成一篇有意义的文章的.要完成一篇文章,先需要确定这篇文章的结构,是先分述再总述,还是逐层递进论述.定好结构后再按照结构的要求将词语和句子安排到合适的位置,这样才能写出一篇有意义的词句通顺的文章.编写程序就像写文章一样,也同样需要先根据需要处理的事务确定程序的流程控制结构,然后再将那些零散的语句串联起来描述一个完整的处理事务的过程,从而将多条零散的语句组织成可以完成一定功能的完整

ngx-bootstrap使用02 Accordion组件的使用

1 Accordion组件 该组件通过一个可折叠的控制面板去在有限空间内显示更多的信息 according组件在可折叠指令的最外层,该组件提供了一些列的项目列表去显示被折叠的内容,这些项目列表包含header和body,通过单击这些项目列表的header就可以让body实现关闭和打开效果,从而实现折叠内容的显示和关闭 1.1 基本使用 1.1.1 在模块级别导入AccordionModule import { BrowserModule } from '@angular/platform-bro