0L表示类型为long的0
本帖最后由 zxcbcv 于 2020-8-26 07:39 编辑#include <stdio.h>
int main()
{
int num = 0;
long sum = 0L; // 0L表示类型为long的0
int status;
do
{
printf("请输入合法的数字:");
sum = sum + num;
status = scanf("%d", &num);
} while(status == 1);
printf("结果是:%ld\n", sum);
return 0;
}
0L表示类型为long的0 这个是什么意思?
int i;
int status;
int sum;
我是这么写的就会出现这种情况,求解:
一个为 0 的长整形 本帖最后由 baige 于 2020-8-26 07:46 编辑
就是0,至于你下面的情况,请放自己完整的代码 本帖最后由 zxcbcv 于 2020-8-26 07:51 编辑
\ baige 发表于 2020-8-26 07:42
就是0,至于你下面的情况,请放自己完整的代码
#include <stdio.h>
int main()
{ int i;
int status;
long sum;
do{
printf("请输入合法数字:");
sum=sum+i;
status = scanf("%d",&i);}
while(status==1);
printf("%d",sum);
return 0;
} zxcbcv 发表于 2020-8-26 07:52
#include
int main()
你哪里不懂? zxcbcv 发表于 2020-8-26 07:49
\
对sum初始化再看看,int sum = 0; #include <stdio.h>
int main() {
int i = 0;
int status;
long sum = 0;
do {
printf("请输入合法数字:");
sum=sum+i;
status = scanf("%d",&i);
} while(status==1);
printf("%d",sum);
return 0;
} 初始化sum和i, 不然第一次相加是两个随机的数在运算 baige 发表于 2020-8-26 07:55
必须先定义 i 和sum等于0么? zxcbcv 发表于 2020-8-26 07:57
必须先定义 i 和sum等于0么?
是的,要不然里面存放的值是未知的,进入循环后对第一次sum = sum + i, 造成影响, 它会导致sum是一个未知的数, 然后去和你输入的数字去做加法运算,导致最后出来的也是一个未知的数
页:
[1]