15588686105 发表于 2020-9-21 11:39:38

为啥不一样呢

n--不是等于n=n-1吗
#include <stdio.h>
int sum(int n);
int sum(int n)
{
        int result=0;
        do
        {
        result+=n;
        n--;
        }
        while(n>0);//这里不用上一句n--的话,把n--放到while条件括号里是对的,但换成n=n-1就错了为什么啊
        return result;
}
int main()
{
        int n,result;
        printf("输入n; \n");
        scanf("%d",&n);
        printf("结果是: %d\n",sum(n));
       
        return 0;
}

baige 发表于 2020-9-21 12:28:47

#include <stdio.h>
int sum(int n);
int sum(int n)
{
      int result=0;
      do
      {
            result+=n;
      }
      while((n=n-1)>0);//这里不用上一句n--的话,把n--放到while条件括号里是对的,但换成n=n-1就错了为什么啊
      return result;
}
int main()
{
      int n,result;
      printf("输入n; \n");
      scanf("%d",&n);
      printf("结果是: %d\n",sum(n));
      
      return 0;
}

baige 发表于 2020-9-21 12:29:53

n = n-1>0
实际上是((n-1)>0)的结果赋值给n

15588686105 发表于 2020-9-21 12:33:52

baige 发表于 2020-9-21 12:29
n = n-1>0
实际上是((n-1)>0)的结果赋值给n

但是为什么while条件里的n--会执行呢 他不是条件吗那为什么n=n-1不会执行呢

baige 发表于 2020-9-21 12:37:00

本帖最后由 baige 于 2020-9-21 12:38 编辑

n--是先进行n>0判断再n -= 1
你可以在return 前输出一下n的值,因为最后一个n是0, 0先和>0判断,再减1,最后n=-1

baige 发表于 2020-9-21 12:40:03

#include <stdio.h>
int sum(int n);
int sum(int n)
{
      int result=0;
      do
      {
      result+=n;
      n--;
      }
      while(n>0);//这里不用上一句n--的话,把n--放到while条件括号里是对的,但换成n=n-1就错了为什么啊
      return result;
}
int main()
{
      int n,result;
      printf("输入n; \n");
      scanf("%d",&n);
      printf("结果是: %d\n",sum(n));
      
      return 0;
}
#include <stdio.h>
int sum(int n);
int sum(int n)
{
      int result=0;
      do
      {
            result+=n;
      }
      while((n=n-1)>0);//这里不用上一句n--的话,把n--放到while条件括号里是对的,但换成n=n-1就错了为什么啊
      return result;
}
int main()
{
      int n,result;
      printf("输入n; \n");
      scanf("%d",&n);
      printf("结果是: %d\n",sum(n));
      
      return 0;
}
这两种最后的n都是0
你需要了解n--的作用,先使用n的值,n > 0, n -= 1

15588686105 发表于 2020-9-22 19:41:20

baige 发表于 2020-9-21 12:40
这两种最后的n都是0
你需要了解n--的作用,先使用n的值,n > 0, n -= 1

哦哦谢谢

baige 发表于 2020-9-22 19:43:04

15588686105 发表于 2020-9-22 19:41
哦哦谢谢

问题解决的话就结贴吧

15588686105 发表于 2020-9-22 19:47:19

baige 发表于 2020-9-22 19:43
问题解决的话就结贴吧

新发了个帖子,老哥也帮忙看下吧
页: [1]
查看完整版本: 为啥不一样呢