7-35 有理数均值 分数 20

每日一言

我们把世界看错,反说它欺骗了我们。 --飞鸟集


题目

本题要求编写程序,计算N个有理数的平均值。

输入格式:

输入第一行给出正整数N(≤100);第二行中按照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


如果不懂化简可以去看
有理分式化简
点一下就可以跳转

思路一:先计算总结果,最后化简

(运行溢出)
本来想着先计算出总结果,最后再化简的,果然偷懒就拿不了满分 ┭┮﹏┭┮

代码:

#include<stdio.h>
#include<math.h>
int main()
{int n=0;scanf("%d",&n);int i=0;int fz[n];int fm[n];int tmp=0;for(i=0;i<n;i++){scanf("%d/%d",&fz[i],&fm[i]);}int j=0;long long zfm=1;long long zfz=0;for(i=0;i<n;i++){for(j=0;j<n;j++){if(j!=i){fz[i]*=fm[j];}}zfz+=fz[i];zfm*=fm[i];}zfm*=n;for(i=zfm;i>=2;i--){if(zfm%i==0&&zfz%i==0){zfm/=i;zfz/=i;break;}}if(zfz==0){printf("0");return 0;}if(zfm==1)printf("%lld",zfz);elseprintf("%lld/%lld",zfz,zfm);return 0;
}

解释:

  1. 用户输入n,表示分数的个数。
  2. 定义两个数组fz和fm,用于存储分子和分母。
  3. 使用循环,依次读取每个分数的分子和分母并存储到数组中。
  4. 初始化两个变量zfz和zfm,分别表示最终的分子和分母,初始值都为0和1。
  5. 使用两个嵌套循环,计算每个分数的通分分子,并将通分分子累加到zfz上。
  6. 计算所有分数的通分分母,并将其乘以n。
  7. 使用循环,从zfm开始递减,判断zfm和zfz是否都能整除以i,如果能整除,则将两者都除以i,即化简为最简形式。
  8. 最后,根据zfz和zfm的值的不同情况,进行输出。若zfz为0,则输出0;若zfm为1,则只输出zfz;否则输出zfz和zfm的值。这段代码实现了计算n个分数的和,并化简为最简形式的功能。

偷懒只能能拿到15分
在这里插入图片描述

思路二:每输入一个分数就化简一次

在这里插入图片描述

#include<stdio.h>
void simp(int* x,int* y)//化简分数
{int tmp=*x<*y?*x:*y;while(tmp>1){if(*x%tmp==0&&*y%tmp==0){*x/=tmp;*y/=tmp;break;}tmp--;}
}int main()
{int n =0;scanf("%d",&n);//输入的分数数目int a=0;int b=0;scanf("%d/%d",&a,&b);int zfz=a;int zfm=b;simp(&zfz,&zfm);//化简while(~scanf("%d/%d",&a,&b)){zfz=zfz*b+zfm*a;zfm*=b;simp(&zfz,&zfm);//化简}zfm*=n;//分母乘以n,来计算平均数simp(&zfz,&zfm);if(1==zfm)//如果分母为1,只打印分子就行{printf("%d",zfz);}else if(0==zfz)//如果分子为0,打印0printf("0");elseprintf("%d/%d",zfz,zfm);//正常打印return 0;
}

在这里插入图片描述


结语

请给自己些耐心,一口吃不成胖子。
山外青山楼外楼,莫把百尺当尽头。
保持空杯心态加油努力吧!


都看到这里啦!真棒(*^▽^*)

可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家

编程小白写作,如有纰漏或错误,欢迎指正


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/327685.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【STM32】STM32学习笔记-TIM输出比较(15)

00. 目录 文章目录 00. 目录01. 输出比较简介02. PWM简介03. 输出比较通道(高级)04. 输出比较通道(通用)05. 输出比较模式06. PWM基本结构07. PWM参数计算08. 舵机简介09. 舵机硬件电路10. 直流电机及驱动简介11. 直流电机硬件电路12. 附录 01. 输出比较简介 OC&#xff08;Ou…

【STM32】STM32学习笔记-ADC单通道 ADC多通道(22)

00. 目录 文章目录 00. 目录01. ADC简介02. ADC相关API2.1 RCC_ADCCLKConfig2.2 ADC_RegularChannelConfig2.3 ADC_Init2.4 ADC_InitTypeDef2.5 ADC_Cmd2.6 ADC_ResetCalibration2.7 ADC_GetResetCalibrationStatus2.8 ADC_StartCalibration2.9 ADC_GetCalibrationStatus2.10 A…

蓝桥杯备赛系列 高精度 acwing版

前言 hello&#xff0c;好久不见。元旦玩过后该收心了&#xff0c;我也倒计时一下蓝桥杯考试时间&#xff0c;大家一起复习&#xff0c;一起登顶。今天讲解高精度算法。 这个算法其实是给学c同学讲的&#xff0c;因为python自带高精度所以不需要&#xff0c;且我讲到所有内容…

Wrk压测发送Post请求的正确姿势

一、Wrk简介 wrk 是一个能够在单个多核 CPU 上产生显著负载的现代 HTTP 基准测试工具。它采用了多线程设计&#xff0c;并使用了像 epoll 和 kqueue 这样的可扩展事件通知机制。此外&#xff0c;用户可以指定 LuaJIT 脚本来完成 HTTP 请求生成、响应处理和自定义报告等功能。 …

频率域滤波图像复原之逆滤波的python实现——数字图像处理

逆滤波原理 逆滤波是一种在频率域进行的图像复原技术&#xff0c;常用于修复由运动模糊等因素引起的图像退化。具体步骤如下&#xff1a; **频率域表示&#xff1a;**首先&#xff0c;将退化的图像通过傅里叶变换从空间域转换到频率域。这使得图像的频率成分变得明显&#xf…

直流稳压电源电路

一、稳压电源的技术指标及对稳压电源的要求 稳压电源的技术指标可以分为两大类&#xff1a;一类是特性指标&#xff0c;如输出电压、输出电滤及电压调节范围;另一类是质量指标&#xff0c;反映一个稳压电源的优劣&#xff0c;包括稳定度、等效内阻&#xff08;输出电阻&#x…

dyld: Library not loaded: /usr/lib/swift/libswiftCoreGraphics.dylib

更新Xcode14后低版本iPhone调试报错 dyld: Library not loaded: /usr/lib/swift/libswiftCoreGraphics.dylib Referenced from: /var/containers/Bundle/Application/…/….app/… Reason: image not found 这是缺少libswiftCoreGraphics库 直接导入libswiftCoreGraphics库即…

软件测试作业‖pytest+po+csv+html报告+cookie+selenium

软件测试作业‖pytestpocsvhtml报告cookieselenium 先用本地部署的系统试了下 或者UFT自动化测试里诺图书管理系统软件测试 # &#xff0c;#测试报告# #性能测试#&#xff0c;#测试用例#&#xff0c; #自动化测试# Selenium 的 Web自动化测试基本要求和注意事项 1.请使用ch…

软件测试之单元测试、系统测试、集成测试知识总结

一、单元测试的概念 单元测试是对软件基本组成单元进行的测试&#xff0c;如函数或一个类的方法。当然这里的基本单元不仅仅指的是一个函数或者方法&#xff0c;有可能对应多个程序文件中的一组函数。 单元也具有一些基本的属性。比如&#xff1a;明确的功能、规格定义&#…

phpstudy面板Table ‘mysql.proc‘ doesn‘t exist解决办法

原因分析&#xff1a;误删了mysql数据库 解决办法如下&#xff1a; 1、停止服务 2、先把mysql文件夹下的data文件夹备份&#xff0c;因为data文件里存有数据库文件。然后再删除data文件。 3、cmd管理员命令进入到mysql中的bin目录下 &#xff0c;执行mysqld --initialize-…

2024--Django平台开发-基础信息(一)

一、前置知识点 - Python环境搭建 (Python解释器、Pycharm、环境变量等) - 基础语法(条件、循环、输入输出、编码等) - 数据类型(整型、布尔型、字符串、列表、字典、元组、集合等) - 函数(文件操作、返回值、参数、作用域等) - 面向对象 (类、对象、封装、继承、多态等)包和模…

Vue3-39-路由-导航异常的检测 afterEatch 与 编程式导航之后的订阅动作

说明 本文主要是介绍一下 路由的后置守卫 afterEatch 的一个重要的作用 &#xff1a; 就是检测路由异常信息。 它的实现方式是 通过第三个参数来返回的。 而且&#xff0c;它的异常检测是全局的。导航的异常有以下三种类型&#xff1a; aborted : 在导航守卫中 被拦截并返回了…