语言C中的模数

时间:2012-11-28 15:55:56

标签: c modulus

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

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

3 个答案:

答案 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