• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Objective-C 程序设计(第六版)第六章习题答案

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1.

1         int  value1,value2;
2         printf("请输入两个整数,用逗号隔开:");
3         scanf("%d,%d",&value1,&value2);
4         
5         if (value1 % value2 == 0) {
6             printf("可以整除\n");
7         }
8         printf("不能整除\n");
9         

2.  main函数部分

 1         double   value1, value2;
 2         char      operator;
 3         Calculator *deskCalc = [[Calculator alloc] init];
 4         
 5         NSLog(@"Type in your expression.");
 6         scanf("%lf  %c  %lf", &value1, &operator, &value2);
 7         
 8         [deskCalc setAccumulator:value1];
 9         
10         if ( operator == \'+\' ) {
11             [deskCalc add: value2];
12         }else if ( operator == \'-\')
13             [deskCalc subtract: value2];
14         else if ( operator == \'*\' )
15             [deskCalc multiply: value2];
16         else if ( operator == \'/\')
17             if ( value2 == 0) {
18                 NSLog(@"Division by zero.");
19 //                NSLog(@"%.2f",[deskCalc accumulator]);
20             }else
21                 [deskCalc divide: value2];
22         else
23             NSLog(@"Unknown operator.");
24         NSLog(@"%.2f",[deskCalc accumulator]);

3.修改print方法

- (void) print
{
    if (numerator % denominator == 0 && denominator != 0) {
        NSLog(@"%d",numerator/denominator);
    }else if (numerator == 0 )
        NSLog(@"分数为 0 ");
    else
        NSLog(@"%d/%d", numerator,denominator);

}

4.有内存泄露的情况 懒得改了

        double   number;
        char      operator;
        Calculator *deskCalc = [[Calculator alloc] init];
        
        NSLog(@"Type in your expression.");
//        scanf("%lf  ", &number);

        while ( operator != \'E\' ) {
            scanf("%lf %c",&number,&operator);
            if ( operator == \'S\') {
                [deskCalc setAccumulator:number];
                NSLog(@"%lf",[deskCalc accumulator]);
                
            }else if ( operator == \'+\' ){
                [deskCalc add:number];
                NSLog(@"加法 %lf",[deskCalc accumulator]);
            }else if ( operator == \'-\' ){
                [deskCalc subtract:number];
                NSLog(@"减法%lf",[deskCalc accumulator]);
            }else if ( operator == \'*\' ){
                [deskCalc multiply:number];
                NSLog(@"乘法%lf",[deskCalc accumulator]);
            }else if ( operator == \'/\' ){
                if (number != 0) {
                    [deskCalc divide:number];
                    NSLog(@"除法%lf",[deskCalc accumulator]);
                }else
                    NSLog(@"除数为0 不合法");
            }else
                NSLog(@"您输入的符号不合法");
    }

5.

        int number, right_digit;
        BOOL isTure = \'\0\';
        
        NSLog(@"Enter your number.");
        scanf("%d", &number);
        
        if ( number < 0 ) {
            number = -number;
            isTure = YES;
        }
        do {
            right_digit = number % 10;
            NSLog(@"%d", right_digit);
            number /= 10;
        } while ( number != 0 );
        if ( isTure ) {
            NSLog(@"-");
            
        }

6.很难 做出一部分  当尾数有一个零或者几个零的时候显示不完全。头疼 

 1         int number, right_digit, reverseNum = 0;
 2         NSLog(@"请输入一个整数");
 3         scanf("%d", &number);
 4         
 5         do {
 6             right_digit = number % 10;
 7             reverseNum *= 10;
 8             reverseNum += right_digit;
 9 //            NSLog(@"%d", reverseNum);
10             number /= 10;
11         } while (number != 0);
12         
13         do {
14             right_digit = reverseNum % 10;
15             switch (right_digit) {
16                 case 0:
17                     NSLog(@"zero");
18                     break;
19                 case 1:
20                     NSLog(@"one");
21                     break;
22                 case 2:
23                     NSLog(@"two");
24                     break;
25                 case 3:
26                     NSLog(@"three");
27                     break;
28                 case 4:
29                     NSLog(@"four");
30                     break;
31                 case 5:
32                     NSLog(@"five");
33                     break;
34                 case 6:
35                     NSLog(@"six");
36                     break;
37                 case 7:
38                     NSLog(@"seven");
39                     break;
40                 case 8:
41                     NSLog(@"eight");
42                     break;
43                 case 9:
44                     NSLog(@"nine");
45                     break;
46                 default:
47                     break;
48             }
49             reverseNum /= 10;
50         } while (reverseNum != 0);
51         
52         

7.这道题理解不是很充分。有机会在做吧

 1          int p, d, isPrime;
 2         
 3         for ( p = 2; p <= 50; ++p ){
 4             if ( p % 2 == 0 ){
 5                 isPrime = 0;
 6             }
 7             isPrime = 1;
 8             
 9             for ( d = 2; d < p; ++d ){
10                 if ( p % d == 0 )
11                     isPrime = 0;
12             }
13             
14             if ( isPrime != 0 )
15                 NSLog (@"%i", p);
16         }
17         

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap