黑马程序员技术交流社区

标题: 分享自己做的练习题 [打印本页]

作者: 一笑奈_UTPa1    时间: 2016-1-31 09:09
标题: 分享自己做的练习题
  1. //  现在有一个有序的数组,要求用户输入一个整数放到数组中还保证这个数组是有序的。例如原数组为@[@1,@3,@5,@7,@9]; 插入8之后为@[@1,@3,@5,@7,@8,@9];(Objective-C)

  2. //1 3 5 7 9     9 7 5 3 1

  3. #import <Foundation/Foundation.h>

  4. int main(int argc, const char * argv[]) {
  5.     @autoreleasepool {
  6.         //初始的有序数组
  7.         NSMutableArray *arr = [NSMutableArray arrayWithObjects:@1,@3,@5,@7,@9,nil ];
  8.         //提示用户输入一个整数
  9.         printf("请输入一个整数\n");
  10.         int num = 0;
  11.         scanf("%d",&num);
  12.         //将新输入的插入到原数组中。已知原数组是有序的,因此只需要从头开始比较一遍就好了
  13.         //先判断好原数组是升序的还是降序的,用前一个的值减去后一个
  14.         int flag =[[arr objectAtIndex:0] intValue]-[[arr objectAtIndex:1] intValue];
  15.         for(int i =0;i<[arr count];i++)
  16.         {
  17.             //临时保存从原数组中读出来的数字
  18.             int tp1 = [[arr objectAtIndex:i] intValue];
  19.             //升序的情况(0为特殊情况,一并处理了)
  20.             if(flag<=0)
  21.             {
  22.                 //只要满足num小于当前数字就好了。将num对象化后插入
  23.                 if(num<=tp1)
  24.                 {
  25.                      [arr insertObject:([NSNumber numberWithInt:num]) atIndex:(i)];
  26.                     //终止循环
  27.                     break;
  28.                 }
  29.                 //比所有的都大,放到最后
  30.                 else if(i==[arr count]-1)
  31.                 {
  32.                     //将num对象化后插入
  33.                     [arr insertObject:([NSNumber numberWithInt:num]) atIndex:(i+1)];
  34.                     break;
  35.                 }
  36.             }
  37.             //原数组降序的情况
  38.             else
  39.             {
  40.                 //只要满足num大于当前数字就好了。将num对象化后插入
  41.                 if(num>=tp1)
  42.                 {
  43.                     //将num对象化后插入
  44.                     [arr insertObject:([NSNumber numberWithInt:num]) atIndex:(i)];
  45.                     //终止循环
  46.                     break;
  47.                 }
  48.                 //比所有的都小,放到最后
  49.                 else if(i==[arr count]-1)
  50.                 {
  51.                     //将num对象化后插入
  52.                     [arr insertObject:([NSNumber numberWithInt:num]) atIndex:(i+1)];
  53.                     break;
  54.                 }
  55.             }
  56.          
  57.         }
  58.         //输出结果
  59.         NSLog(@"新的数组为%@",arr);
  60.     }
  61.     return 0;
  62. }
复制代码



作者: 13631297627    时间: 2016-2-1 13:32
可以的!!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2