解题思路:

注意事项:

参考代码:

#include<stdio.h>


typedef struct

{ long long int fz,fm;

}Fs;


long long int yue(long long int a,long long int b)

{ long long int z;

  while(z=a%b)

  { a=b;

    b=z;

  }

  return b;

}


Fs yin(Fs a,Fs b)

{ long long int zm,zz;

  while(a.fm!=b.fm&&a.fz!=b.fz)

  { zm=b.fm/a.fm;

    b.fm=a.fm;

    a.fm=zm;

    zz=b.fz/a.fz;

    b.fz=a.fz;

    a.fz=zz;

  }

  return a;

}

    

int main()

{ Fs b[100],t;

  long long int n,a[100],i,j,z,m;

  scanf("%lld",&n);

  for(i=0;i<n;i++)

  scanf("%lld",&a[i]);

  for(i=0;i<n-1;i++)

   for(j=i+1;j<n;j++)

    if(a[i]>a[j])

    { z=a[i];

      a[i]=a[j];

      a[j]=z;

    }

  for(i=0,m=0;i<n-1;i++)

  if(a[i]!=a[i+1])

  { b[m].fz=a[i+1]/yue(a[i+1],a[i]);

    b[m].fm=a[i]/yue(a[i+1],a[i]);

    m++;

  }

  if(m==1)

  { printf("%lld/%lld",b[0].fz,b[0].fm);

    return 0;

  }

  for(i=0;i<m-1;i++)

   for(j=i+1;j<m;j++)

   if(b[i].fz>b[j].fz)

   { t=b[i];

     b[i]=b[j];

     b[j]=t;

   }

  t=yin(b[0],b[1]);

  for(i=2;i<m-1;i++)

  t=yin(t,b[i]);

  printf("%lld/%lld",t.fz,t.fm);

  return 0;

}


点赞(0)
 

0.0分

4 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论