7-35 有理数均值 (20 分)
发布日期:2021-06-29 22:19:15 浏览次数:2 分类:技术文章

本文共 819 字,大约阅读时间需要 2 分钟。

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
作者: 乔林
单位: 清华大学
时间限制: 400 ms
内存限制: 64 MB
代码长度限制: 16 KB
#include<stdio.h>
int main()
{
int i,n,m;
long long int a,b,c,d,m1,m2,p;
scanf("%d",&n);
m=n;
scanf("%lld/%lld",&a,&b);
while(–n)
{
scanf("%lld/%lld",&c,&d);
m1=ad+bc;
m2=bd;
if(m1>m2) p=m2;
else p=m1;
if(p<0) p=-p;
for(i=p;i>=1;i–)
{
if(m1%i==0&&m2%i= =0)
{
a=m1/i;
b=m2/i;
break;
}
}
if(i<1)
{
a=m1;
b=m2;
}
}
b=b
m;
if(a>b) p=b;
else p=a;
if(p<0) p=-p;
for(i=p;i>=1;i–)
{
if(a%i= =0&&b%i= =0)
{
a=a/i;
b=b/i;
}
}
if(a%b= =0) printf("%lld",a/b);
else if(a/b==0&&b!=0&&a!=0) printf("%lld/%lld",a%b,b);
}

转载地址:https://dingshijie.blog.csdn.net/article/details/86987477 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:7-57 复数四则运算 (15 分)
下一篇:7-21 查验身份证 (15 分)

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月19日 11时29分14秒