gpt4 book ai didi

c - Scanf 不要在循环中第二次扫描 char,有什么想法吗?

转载 作者:行者123 更新时间:2023-11-30 15:27:13 25 4
gpt4 key购买 nike

    n=10;
for(i=1;i<n;i++){
random = 1 + rand() % 3;
printf("\n\nIzdari savu izveli ==>");
scanf("%c", &zime);
if( zime=='a' )
printf("\nTu uzliki AKMENI");
else if( zime=='s' )
printf("\nTu uzliki SKERES");
else if( zime=='p' )
printf("\nTu uzliki PAPIRU");

if( random==1 )
printf("\nDators uzlika AKMENI");
else if( random==2 )
printf("\nDators uzlika SKERES");
else if( random==3 )
printf("\nDators uzlika PAPIRU");

if( random==1&&zime=='a' || random==2 && zime=='s' || random==3 && zime=='p')
printf("\n\nNeizskirts!!!");
else if( random==1&&zime=='p' || random==2&&zime=='a' || random==3&&zime=='s' )
printf("\n\nTu Uzvareji!!!");
else if( random==1&&zime=='s' || random==2&&zime=='p' || random==3&&zime=='a' )
printf("\n\nTu Zaudeji!!!");
getch();
}

为什么当循环第二次开始时它只是跳过 scanf ,并跳转到if( random==1 ) ,然后跳回scanf让你扫描一个字符?

输出看起来像

a

这只是石头剪刀布游戏,但是是其他语言。

最佳答案

第一个输入末尾有一个换行符 \n,在第二个循环期间由 scanf() 选取。

将你的 scanf 更改为:

scanf(" %c", &zime);

关于c - Scanf 不要在循环中第二次扫描 char,有什么想法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27132488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com