黑马程序员技术交流社区
标题:
分享自己做的练习题
[打印本页]
作者:
一笑奈_UTPa1
时间:
2016-1-31 09:09
标题:
分享自己做的练习题
// 现在有一个有序的数组,要求用户输入一个整数放到数组中还保证这个数组是有序的。例如原数组为@[@1,@3,@5,@7,@9]; 插入8之后为@[@1,@3,@5,@7,@8,@9];(Objective-C)
//1 3 5 7 9 9 7 5 3 1
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//初始的有序数组
NSMutableArray *arr = [NSMutableArray arrayWithObjects:@1,@3,@5,@7,@9,nil ];
//提示用户输入一个整数
printf("请输入一个整数\n");
int num = 0;
scanf("%d",&num);
//将新输入的插入到原数组中。已知原数组是有序的,因此只需要从头开始比较一遍就好了
//先判断好原数组是升序的还是降序的,用前一个的值减去后一个
int flag =[[arr objectAtIndex:0] intValue]-[[arr objectAtIndex:1] intValue];
for(int i =0;i<[arr count];i++)
{
//临时保存从原数组中读出来的数字
int tp1 = [[arr objectAtIndex:i] intValue];
//升序的情况(0为特殊情况,一并处理了)
if(flag<=0)
{
//只要满足num小于当前数字就好了。将num对象化后插入
if(num<=tp1)
{
[arr insertObject:([NSNumber numberWithInt:num]) atIndex:(i)];
//终止循环
break;
}
//比所有的都大,放到最后
else if(i==[arr count]-1)
{
//将num对象化后插入
[arr insertObject:([NSNumber numberWithInt:num]) atIndex:(i+1)];
break;
}
}
//原数组降序的情况
else
{
//只要满足num大于当前数字就好了。将num对象化后插入
if(num>=tp1)
{
//将num对象化后插入
[arr insertObject:([NSNumber numberWithInt:num]) atIndex:(i)];
//终止循环
break;
}
//比所有的都小,放到最后
else if(i==[arr count]-1)
{
//将num对象化后插入
[arr insertObject:([NSNumber numberWithInt:num]) atIndex:(i+1)];
break;
}
}
}
//输出结果
NSLog(@"新的数组为%@",arr);
}
return 0;
}
复制代码
作者:
13631297627
时间:
2016-2-1 13:32
可以的!!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2