#import <Foundation/Foundation.h>
// **********************ch13-hw2&3**************************
//原題目有誤,改為1/4+3/6=18/24
@interface Fraction : NSObject {
int numerator,denominator;
}
-(void) setNum: (int) a;
-(void) setDen: (int) b;
-(int) getNum;
-(int) getDen;
-(void) print;
@end
@implementation Fraction
//set numerator
-(void) setNum:(int)a
{
numerator=a;
}
//set Denominator
-(void) setDen:(int)b
{
denominator=b;
}
//get denominator
-(int) getDen
{
return denominator;
}
//get numerator
-(int) getNum
{
return numerator;
}
//print fraction
-(void)print
{
NSLog(@"分數是%i/%i", numerator, denominator);
}
@end
int main (int argc, const char * argv[])
{
@autoreleasepool {
Fraction *fraction1 =[[Fraction alloc] init];
Fraction *fraction2 =[[Fraction alloc] init];
[fraction1 setNum:1];
[fraction1 setDen:4];
[fraction1 print];
[fraction2 setNum:3];
[fraction2 setDen:6];
[fraction2 print];
int a1, a2, b1, b2,c1,c2;
a1=[fraction1 getNum];
a2=[fraction1 getDen];
b1=[fraction2 getNum];
b2=[fraction2 getDen];
c1=a1*b2+a2*b1;
c2=a2*b2;
int u=c2, v=c1, temp;
while (v!=0) {
temp=u%v;
u=v;
v=temp;
}
c1/=u;
c2/=u;
printf("分數和是:%i/%i", c1, c2);
}
return 0;
}
建議可以把分數相加&分數約分設定為兩個類別方法
回覆刪除以利後續程式延展或維護
同樣也是初學者留~
謝謝提醒啦,我再來試試看!
刪除