-4

我在使用这行代码时遇到了一些问题:(对不起,它是丹麦语)

 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。有人可以帮忙吗?

4

3 回答 3

1

新动作应该是21

newmove=(21-x1) % (k1 + 1) + x1;
        (21-12) % (12 + 1) + 12
        (  9    %    13  ) + 12
                9          + 12
         21
于 2012-11-28T16:05:58.063 回答
0

新移动=(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 ?

于 2012-11-28T16:05:16.053 回答
0

我希望你的结果是 21。将 x1=12 和 k1=12 代入这个表达式:

(21-x1)%(k1+1)+x1

给出:

(21-12)%(12+1)+12 = (9)%(13)+12 = 9 + 12 = 21
于 2012-11-28T16:05:37.287 回答