为啥不一样呢
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;
} #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 = n-1>0
实际上是((n-1)>0)的结果赋值给n baige 发表于 2020-9-21 12:29
n = n-1>0
实际上是((n-1)>0)的结果赋值给n
但是为什么while条件里的n--会执行呢 他不是条件吗那为什么n=n-1不会执行呢 本帖最后由 baige 于 2020-9-21 12:38 编辑
n--是先进行n>0判断再n -= 1
你可以在return 前输出一下n的值,因为最后一个n是0, 0先和>0判断,再减1,最后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;
}
#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 baige 发表于 2020-9-21 12:40
这两种最后的n都是0
你需要了解n--的作用,先使用n的值,n > 0, n -= 1
哦哦谢谢 15588686105 发表于 2020-9-22 19:41
哦哦谢谢
问题解决的话就结贴吧 baige 发表于 2020-9-22 19:43
问题解决的话就结贴吧
新发了个帖子,老哥也帮忙看下吧
页:
[1]