Objective c 有人能告诉我这个程序有什么问题吗? #导入 //接口部分。。。。。。。。。 @接口分数:NSObject { 整数分子; 内指代器; } -(作废)打印; -(void)集合分子:(int)n; -(void)setDenomenator:(int)d; @结束 //实施部分。。。。。。。。 @实现分数 -(作废)打印{ NSLog(@“溶液%i和%i为:”,分子,名词); } -(void)集合分子:(int)n { 分子=n; } -(void)setDenomenator:(int)d { 外显子=d; } @结束 //项目部分。。。。。。。。。。 int main(int argc,const char*argv[] { NSAutoreleasePool*池=[[NSAutoreleasePool alloc]init]; //在这里插入代码。。。 分数*frac1=[[分数分配]初始]; 分数*frac2=[[Fraction alloc]init]; //..设置1..分数=2/3 [frac1集合分子:2]; [frac2设置指示器:3]; //..设置2..分数=3/9 [frac1集合分子:3]; [frac2设定值:9]; //……显示功能。。。。。 NSLog(@“第一个分数为:”); [frac1打印]; NSLog(@“第二个分数是:”); [frac2打印]; [frac1释放]; [frac2释放]; [泳池排水沟]; 返回0;

Objective c 有人能告诉我这个程序有什么问题吗? #导入 //接口部分。。。。。。。。。 @接口分数:NSObject { 整数分子; 内指代器; } -(作废)打印; -(void)集合分子:(int)n; -(void)setDenomenator:(int)d; @结束 //实施部分。。。。。。。。 @实现分数 -(作废)打印{ NSLog(@“溶液%i和%i为:”,分子,名词); } -(void)集合分子:(int)n { 分子=n; } -(void)setDenomenator:(int)d { 外显子=d; } @结束 //项目部分。。。。。。。。。。 int main(int argc,const char*argv[] { NSAutoreleasePool*池=[[NSAutoreleasePool alloc]init]; //在这里插入代码。。。 分数*frac1=[[分数分配]初始]; 分数*frac2=[[Fraction alloc]init]; //..设置1..分数=2/3 [frac1集合分子:2]; [frac2设置指示器:3]; //..设置2..分数=3/9 [frac1集合分子:3]; [frac2设定值:9]; //……显示功能。。。。。 NSLog(@“第一个分数为:”); [frac1打印]; NSLog(@“第二个分数是:”); [frac2打印]; [frac1释放]; [frac2释放]; [泳池排水沟]; 返回0;,objective-c,Objective C,我得到的输出没有显示“分数答案”,即2/3和3/9 #import <Foundation/Foundation.h> //.........interface section......... @interface Fraction : NSObject { int numerator; int denomenator; } -(void) print; -(void) setNumerator: (int) n; -(void) setDenomenator:

我得到的输出没有显示“分数答案”,即2/3和3/9

#import <Foundation/Foundation.h>
//.........interface section.........
@interface Fraction : NSObject 
{
    int numerator;
    int denomenator;
}
-(void) print;
-(void) setNumerator: (int) n;
-(void) setDenomenator: (int) d;
@end
//.........Implementaion Section........
@implementation Fraction
-(void) print {
    NSLog(@"Solution %i and %i is:",numerator,denomenator);
}
-(void) setNumerator:(int)n
{
    numerator = n;
}
-(void) setDenomenator:(int)d
{
    denomenator = d;
}
@end
//..........Program Section..........
int main (int argc, const char * argv[])
{

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    // insert code here...

    Fraction *frac1=[[Fraction alloc] init];
    Fraction *frac2=[[Fraction alloc] init];

    //....Set 1.. fraction = 2/3

    [frac1 setNumerator:2];
    [frac2 setDenomenator:3];

    //.....Set 2 .. Fraction = 3/9

    [frac1 setNumerator:3];
    [frac2 setDenomenator:9];

    //...... Display Function.....

    NSLog(@"First Fraction is:");
    [frac1 print];

    NSLog(@"Second Fraction is:");
    [frac2 print];

    [frac1 release];
    [frac2 release];

    [pool drain];
    return 0;
而不是这个

[frac1 setNumerator:2];
[frac2 setDenomenator:3];

您对frac2也做了同样的操作,输出是您传递给NSLog的
print
方法…您期望得到什么?我尝试了这个,得到了:[切换到进程469线程0x0]2011-07-23 18:50:25.1593[469:707]第一部分是:2011-07-23 18:50:25.1623[469:707]解决方案2和3是:{//我想在这里输入“2/3”..]第二个分数是:2011-07-23 18:50:25.1623[469:707]第二个分数是:2011-07-23 18:50:25.1633[469:707]解决方案3和9是:{//I想在这里看到“3/9”..}程序以退出代码结束:0您只需将分数打印方法函数从NSLog(@“解决方案%I和%I是:”,分子,分母)更改为printf(“%d/%d”,分子,分母);使用c的printf而不是NSLog将删除所有添加的调试信息,请记住printf不支持Objective-c“%@”来打印对象,因此如果要使用printf打印字符串对象,则必须执行类似于[aStr UTF8String]的操作,然后使用%s输出。
[frac1 setNumerator:2];
[frac1 setDenomenator:3];