3530366912 发表于 2021-10-19 19:48:55

这两个代码有任何区别么?为什么结果不一样?

本帖最后由 3530366912 于 2021-10-19 19:53 编辑

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:6031)

#include<stdio.h>

int main()
{
      int n = 0;
      scanf("%d", &n);
      int i = 0;
      int ret = 1;
      for (i = 1; i <= n; i++)
      {
                ret *= i;
      }
      printf("%d\n", ret);
      return 0;
}

和#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:6031)

#include<stdio.h>

int main()
{
        int n = 0;
        scanf("%d", &n);
        int i = 0;
        int ret = 1;
        for (i = 1; i <= n; i++);
        {
                ret *= i;
        }
        printf("%d\n", ret);
        return 0;
}

这是计算阶乘的一个代码,然后上面结果是正常的,下面这个算出来就是n+1,不知道为什么?

3530366912 发表于 2021-10-19 19:51:09

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:6031)

#include<stdio.h>

int main()
{
        int n = 0;
        scanf("%d", &n);
        int i = 0;
        int ret = 1;
        for (i = 1; i <= n; i++)
        {
                ret *= i;
        }
        printf("%d\n", ret);
        return 0;
}

这个是正常的

3530366912 发表于 2021-10-19 20:07:43

知道了,多了个;

嘉岳呀 发表于 2021-10-19 20:35:47

3530366912 发表于 2021-10-19 20:07
知道了,多了个;

在第二个代码的第 14 行最后多了一个分号
页: [1]
查看完整版本: 这两个代码有任何区别么?为什么结果不一样?