求解各位:
嗨翻C语言 > 第一篇代码 >练习 二十一点扑克
问题:
1,为什么char card_name[3], 的[ ]要写3?
2,为什么要设立val=10和val=11为条件?
练习源代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char card_name[3];
puts("输入牌名:");
scanf("%2s",card_name);
int val=0;
if(card_name[0]=='K'){
val=10;
}else if(card_name[0]=='Q'){
val=10;
}else if(card_name[0]=='J'){
val=10;
}else if(card_name[0]=='A'){
val=11;
}else{
val=atoi(card_name);
}
if((val>2)&&(val<7))
puts("计数增加");
else if(val==10)
puts("计数减少");
return 0;
}
之所以要多定义一个字符,是因为要一个字符作为结束符('\0')。
因为字符输入时会在字符串结尾处多加一个'\0'表示字符串结束.
所以设置字符数组长度时要比输入的至少多加一个字符.
你输入2个字符,数组长度就要至少是3