/ / / / / /

上一篇 下一篇 同標題 發表文章 文章列表

作者  weihan (天天天藍) 站內  COMPUTE
標題  Re: C 程式練習題
時間  2007/04/19 Thu 20:03:11

※ 引述《weihan (天天天藍)》之銘言:
> (4) 設計十題小學生的分數運算題目,題目都為分數的加減乘除,所有數字
>     皆為個位數,但
>     (1) 兩分數的減法不得產生負數
>     (2) 分母不得為 1
>     (3) 計算結果要約分  其他則免


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {

    int a , b , c , d , e , f , g , i , m ;

    srand( time(NULL) ) ;
    for ( i = 1 ; i <= 10 ; ++i ) {
        m = rand()%4 ;
        do {

          a = rand()%9+1 ;
          b = rand()%9+1 ;
          c = rand()%9+1 ;
          d = rand()%9+1 ;

          if ( m == 0 ) {
             e = a*d+b*c ;
             f = b*d ;
          } else if ( m == 1 ) {
             e = a*d-b*c ;
             f = b*d ;
          } else if ( m == 2 ) {
             e = a*c ;
             f = b*d ;
          } else {
             e = a*d ;
             f = b*c ;
          }

          if ( e > 0 ) {
             g = ( e < f ? e : f ) ;
             for ( ; g >= 1 ; g-- ) {
                if ( e%g==0 && f%g==0 ) break ;
             }
             e /= g ;
             f /= g ;
          }
        } while ( e >= 10 || f >= 10 || e <= 0 ||
                  b == 1  || d == 1 ) ;

        printf( "%d/%d",a,b) ;
        if ( m == 0 )
           printf(" + ") ;
        else if ( m == 1 )
           printf(" - ") ;
        else if ( m == 2 )
           printf(" x ") ;
        else
           printf(" / ") ;

        printf( "%d/%d = %d/%d\n",c,d,e,f) ;
    }

    system("pause") ;
    return 0 ;
}


--
===================================================================
*               人生的意義 : 盡責任  負責任                      *
*               人生的目的 : 受報  還願  行善                *
*               人生的價值 : 奉獻  付出                        *
================================================== 聖嚴法師  語 ===

--
發信站 [中央數學  織夢天堂 bbs.math.ncu.edu.tw]
  •FROM [weihan 從 220-134-25-64.HINET-IP.hinet.net 發表]

上一篇 下一篇 同標題 發表文章 文章列表