|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
首先要考虑的是输入的是否为身份证号码(号码的位数为18则是,)不是则提示输入的号码有误,并要求从新输入,直到满足号码位数。
然后判断倒数第二位数字是否是偶数(包括0也是偶数),若是则输出是女,否则输出是男。
我遇到的问题:
1.怎么把输入的号码的位数控制在18为,多了不行,少了也不行;
2.输入函数用getchar();可以连续输,若用scanf函数则没输入一位数都要空格、回车、或Tab键;
#include "stdio.h"
int main ()
{
int a, b, c, d, e, f, g, h, i, g, k, l, m, n, o, p, q, r;
printf("输入身份证号。\n);
a = getchar();
b = getchar();
c = getchar();
d = getchar();
e = getchar();
f = getchar();
g = getchar();
h = getchar();
i = getchar();
g = getchar();
k = getchar();
l = getchar();
m = getchar();
n= getchar();
o = getchar();
p = getchar();
q = getchar();
r = getchar();
if ( 0 == q%2 || 0 == q)
{
printf("是女的。\n);
}
else
{
printf("是男的。\n);
}
return 0;
}
/*********************************
switch( ( 0 == (q % 2)) || ( 0 == q) ? 2 : 3)
{
case 2 :
{
printf("是女的。\n");
break;
}
case 3 :
{
printf("是男的。\n");
break;
}
}
因为刚刚学完c语句这一章。有很多不足请大家多多包涵。
- #include <stdio.h>
- #include <string.h>
- int main(void)
- {
- char id_card[21];
- char ch;
- printf("输入身份证号:");
- while(1)
- {
-
- scanf("%20s", id_card);
- while((ch = getchar()) != '\n' && ch != EOF); // 清空输入缓冲区
- if(strlen(id_card) == 18)
- break;
- printf("输入错误,请重新输入:");
- }
-
- if(id_card[16] % 2)
- {
- printf("是男的。\n");
- }
- else
- {
- printf("是女的。\n");
- }
- return 0;
- }
复制代码
|
|