# includelt; Stdio.hgt;;
# define maxlen 80
intmain (void)
{
charstr [maxlen];
while((str[k]=getchar ())! =' #')
k++;
str [k] =' \ 0';
for (k = 0; Str [k]; K++)
if (str [k] gt; =' 0' amp; Amp;; Str [k] lt; =' 9' | | str [k] = =' a' | | str [k] = =' b')
if (str [k]) =' 0' amp; Amp;; Str [k] lt; =' 9')
번호 = 번호 * 12+str [k]-'0';
elseif (str [k] = =' a' | | str [k] = =' b')
번호
else; /* 행 15 */
elsebreak; /* 행 16 */
printf("d\n ",번호);
리턴 0;
}
-다음과 같이 분석됩니다-----
17 번 질문
프로그램 입력 10 >
첫 번째 단계 number=0*12+1=1
두 번째 단계 number = 1 * 12+0 = 12
이 시점에서 number=1질문 19, 프로그램 수정 16 행
프로그램 입력 a*0#
a 와 * 모두 0 에서 9, a 가 아니기 때문이다 LZ 자체 분석
1 단계: num=0*12+1=1
2 단계: num = 1 * 12+6 = 18 < 。 。