我只有30天 发表于 2022-2-27 00:04:40

为什么输出结果为1

#include<stdio.h>
int main()
{
        int i,j,m=55;
        for (i=1;i<=3;i++)
       {
               for (j=3;j<=i;j++)
               m=m%j;       
       }
        printf("%d",m);
}

c_cpp_python 发表于 2022-2-27 00:17:20

因为 j 等于 3 ...

55 % 3 等于 1

大马强 发表于 2022-2-27 00:19:06

你可以这样写
#include<stdio.h>
int main()
{
      int i,j,m=55;
      for (i=1;i<=3;i++)
         {
            for (j=3;j<=i;j++)
            {
                    printf("i = %d, j = %d\n", i, j) ;
                    m=m%j;       // 嵌套循环,
                        }

         }
      printf("%d",m);
}
输出
i = 3, j = 3
1
55 % 3 =1

YSW9527 发表于 2022-2-27 12:35:34

#include<stdio.h>
int main()
{
    int i, j, m = 55;
    for (i = 1; i <= 3; i++)
    {
      for (j = 3; j <= i; j++)//这个for循环只有在i是3的时候才会执行,而且只是执行一次,i是1和2的时候,j是3,显然j不小于等于i,55除以3取余数不就是1啦
            m = m % j;
    }
    printf("%d", m);
}
页: [1]
查看完整版本: 为什么输出结果为1