C语言21点循环问题

Python016

C语言21点循环问题,第1张

你在第一次选择Y的时候实际上输入了两个字符,一个‘Y',一个’\n'(回车符),scanf接受'Y'将其赋给d,但是回车符还在输入流中等待被接受,因此在第二次选择scanf就把'\n'赋给了变量d,所以会出现这错误,在scanf("%c",&d)前加一句"while(getchar()!='\n')"吸收掉回车符就能解决这个问题

#include<stdio.h>

int main()

{

int a[4], sum = 0

printf("请输入三张牌")

scanf("%d%d%d", &a[0], &a[1], &a[2])

for(int i = 0i <3I++)

{

if(a[i] >10) sum += 10

else

sum += a[i]

}

for(int i = 0i <3i++)

{

if(a[i] == 1 &&sum + 10 <= 21)

sum += 10

}

printf("总值为:%d\n", sum)

return 0

}

请采纳,谢谢