我在使用这行代码时遇到了一些麻烦:(对不起,这是丹麦语)
case 1 :
system("cls");
printf("K maa kun have en veardi mellem 1 og 20\nIndtast k:");
scanf("%d", &k1);
while(!(k1>=1 && k1 <=20))//Starten på fejlsikret tilstand
{
printf("K er for hoej eller har en forkert veardi.\nProev igen: ");
fflush(stdin);
scanf("%d", &k1);
}//slutning på fejlsikret tilstand
system("cls");
printf("X maa kun have en veardi mellem 1 og 20\nIndtast din modstanders tal: ");
scanf("%d", &x1);
while(!(x1<21))//Starten på fejlsikret tilstand
{
printf("X er for høj.");
scanf("%d", &x1);
}//slutning på fejlsikret tilstand
newmove=(21-x1)%(k1+1)+x1;
printf("Du skal sige = %d", newmove);
printf("\n\n\nTryk 1 og afslut med Enter for at komme tilbage til start");
scanf("%d", &m);
continue;
但似乎模数部分计算错误。 EKS: 如果我输入数字:x1 = 12和k1 = 12,它给我20.但它应该是17。 有人可以帮忙吗?
答案 0 :(得分:1)
newmove应为21
newmove=(21-x1) % (k1 + 1) + x1;
(21-12) % (12 + 1) + 12
( 9 % 13 ) + 12
9 + 12
21
答案 1 :(得分:0)
newmove =(21-X1)%(K1 + 1)+ X1;
因此,如果x1 = 12且k1 = 12
newmove=(21-12)%(12+1)+12;
newmove=9%13+12;
newmove=9+12
newmove=21
为什么要17岁?
答案 2 :(得分:0)
我希望你的结果是21.将x1 = 12和k1 = 12代入这个表达式:
(21-x1)%(k1+1)+x1
给出:
(21-12)%(12+1)+12 = (9)%(13)+12 = 9 + 12 = 21