黑马程序员技术交流社区
标题:
分享自己做的练习题
[打印本页]
作者:
一笑奈_UTPa1
时间:
2016-1-31 09:11
标题:
分享自己做的练习题
// Created by xuzhenhao on 16/1/26.
// Copyright (c) 2016年 xuzhenhao. All rights reserved.
//
/**
5、中华人民共和国公民身份证号码组成规则是前4位是代表省份和地区(例如4201代表湖北省武汉市),最后一位代表性别(1或3代表男性)。编写一个程序,通过身份证号码判断某人是否是武汉人以及其性别。(Objective-C)
*/
#import <Foundation/Foundation.h>
//使用typedef来定义执行判断的代码块为IDBlock,参数为传入的身份证号码
typedef void (^IDBlock)(NSString *);
//性别只分男女
typedef enum {man,women} Sex;
int main(int argc, const char * argv[]) {
@autoreleasepool {
//定义身份证号码
NSString * idNumber = @"420102199204184313";
//用新的类型定义block变量,更好的封装
IDBlock isWuhan;
isWuhan = ^(NSString *id)
{
//记录判断结果的变量,sex性别,flag是否为武汉人
Sex sex;
int flag ;
//先读取id字符串中前4位字符
NSString *temp = [id substringToIndex:4];
//将身份证的前4位和”4201“比较
if([temp compare:@"4201"]!=0)
flag = -1;//不是,flag置为-1
else flag = 1;
//再判断性别,读取最后一位。长度不写死,以防不是18位的身份证号
temp = [id substringFromIndex:id.length-1 ];
//如果最后一位是1或3,则赋值为man,否则为woman
if([temp compare:@"1"]==0||[temp compare:@"3"]==0)
sex = man;
else sex = women;
//输出结果
NSLog(@"身份证号为%@的用户%@武汉人,性别为%@",id,flag==1?@"是":@"不是",sex==man?@"男":@"女");
};
//调用block
isWuhan(idNumber);
}
return 0;
}
复制代码
作者:
13631297627
时间:
2016-2-1 13:30
可以的!!!
作者:
石门一梦
时间:
2016-2-1 15:00
加油!!!
作者:
847374032
时间:
2016-2-1 20:29
厉害!学习了
作者:
13631297627
时间:
2016-2-1 23:45
不错不错!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2