武汉科技大学ACM :1007: 华科版C语言程序设计教程(第二版)习题5.7

Problem Description

 这天老师给小豪出了一道很简单题目放松:输入一个分数,让你求出它们的最简分数。

Input

 第一行包括一个T,表示测试数据的组数。

接下来T行每行包括一个分数。(分子分母均在int范围内)

Output

 对于每个测试样例,输出一行其最简分数。

Sample Input

3
2/6
3/1
11/36

Sample Output

1/3
3/1
11/36


我的代码:
 1 #include <stdio.h>
 2 process(int a ,int b)/*求最大公约数,以便约分的函数*/
 3 {
 4     int c;
 5     while(b!=0)
 6     {
 7         c=a%b;
 8         a=b;
 9         b=c;
10     }
11     return a;
12 }
13 
14 void main()
15 {
16     int n,i,a,b,min;
17     scanf("%d",&n);
18     for(i=0;i<n;i++)
19     {
20         scanf("%d/%d",&a,&b);
21         min=process(a,b);
22         printf("%d/%d
",a/min,b/min);
23     }
24 }

其他代码:

 1 #include <iostream>
 2 
 3 using namespace std;
 4 int mgcd(int a,int b)
 5 {
 6 
 7     int t;
 8     if(a<b)
 9     {
10 
11         t=a;a=b;b=t;
12     }
13     while(a%b)
14     {
15         t=b;
16         b=a%b;
17         a=t;
18     }
19     return b;
20 }
21 
22 int main()
23 {
24     int a,b,t;
25     char ch;
26     int count=0;
27     int T;
28     cin>>T;
29     while(cin>>a>>ch>>b)
30     {
31         ++count;
32         t=mgcd(a,b);
33         a /= t;
34         b /= t;
35         cout<<a<<"/"<<b<<endl;
36         if(count==T)
37         {
38             break;
39         }
40     }
41 
42     return 0;
43 }
原文地址:https://www.cnblogs.com/liuwt365/p/4147420.html