东北大学在线编程社区problem1342
题目描述:
从键盘输入18位身份证号(字符数组),输出出生年月(整型)。
输出格式"%d-%d"
输入不是18位,则输出"input error"
输入样例:37050520000426205X
输出样例:2000-4
//该代码使用Microsoft Visual Stdio2019编写
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main(void)
{
char code[20];
int n, year, month;
gets(code);
n = strlen(code);
if (n == 18) {
year = (code[6] - 48) * 1000 + (code[7] - 48) * 100 + (code[8] - 48) * 10 + (code[9] - 48) * 1;
month = (code[10] - 48) * 10 + (code[11] - 48) * 1;
printf("%d-%d", year, month);
}
else
printf("input error");
return 0;
}
原题有使用二维数组的提示,但是作者怕麻烦就没有用。