厦大C在线实验题3 分数约简
生活随笔
收集整理的這篇文章主要介紹了
厦大C在线实验题3 分数约简
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
易錯點:分母為0的時候直接輸出0就行了;break的位置要注意;i有外用要設置成全局變量。
疑點:Dev C++可以在循環的時候直接return i;但廈大oj需要中間變量ys;
描述
自從小明拜小強為師后,自知和師傅之間有著無法逾越的差距!不過他并不氣餒,他決定通過的努力一點一點縮短與師傅之間的距離!這不才剛學完循環結構,他就迫不及待的想練習了。于是他自己去找了一些題來練手!
這第一個題很簡單,就是給出一個分數,把它化為最簡分式。
輸入
第一行輸入一個整數T,T \le 100T≤100,代表有T組測試數據。接下來的T行,每行輸入兩個非負整數n、m。n是分子,m是分母(也就是n/m)。每一行代表一組測試數據。0 \lt m,n \lt 1000000<m,n<100000
輸出
輸出最簡分式,格式a/b。若b=1,只輸出a;若分母n=0,則輸出“Error!”(輸出無引號)
每組測試數據占一行。
輸入樣例 1?
3 12 16 15 3 20 0輸出樣例 1
3/4 5 Error!提示
注意:今后還會遇到有T組測試數據的問題,均可參照如下方式處理。
其實,T組數據不必一次性全部讀進來,可以每次只讀取兩個數,一組一組處理。參考代碼為:
scanf("%d", &T); for(int t=0;t<T;t++) {scanf("%d%d", &n, &m);//處理一組n,m....//輸出本組結果 } #include<stdio.h>int main() {int t,n,m,ys;int gys(int n,int m);scanf("%d",&t);for(int i=0; i<t; i++){scanf("%d %d",&n,&m);if(m==0) printf("Error!\n");else if(n==0) printf("0\n");else {ys=gys(n,m);m/=ys;n/=ys;if(m==1) printf("%d\n",n);else printf("%d/%d\n",n,m);} }return 0; } int gys(int n,int m) {int t,i,ys;if(n>m) {t=n;n=m;m=t;}for(i=n; i>0; i--){if(m%i==0 && n%i==0){ys=i;break;}}return ys; }?
?
總結
以上是生活随笔為你收集整理的厦大C在线实验题3 分数约简的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 下载测试点
- 下一篇: HTML5期末大作业:动漫网站设计——福