为了账号安全,请及时绑定邮箱和手机立即绑定

搞不懂 ?为什么给出4个结果。

搞不懂 ?为什么给出4个结果。

C
慕瓜7417558 2018-04-27 14:22:31
查看完整描述

5 回答

已采纳
?
onemoo

TA贡献883条经验 获得超454个赞

其他人已经解答了为什么第四次输出是乱数的问题。

但我很奇怪于你之前的回复,不是该不该“把 %d到%d的和是%d 放到printf里面”,而是想要问你:为什么要在三次调用 sum 后又调用 printf 呢?

sum 函数中已经有 printf 输出了,你又额外调用一次的意义何在呢?

查看完整回答
1 反对 回复 2018-04-27
  • 慕瓜7417558
    慕瓜7417558
    在于没有printf就没有输出 , 我试过了 真的没有
  • 慕瓜7417558
    慕瓜7417558
    这是我现在知道的唯一的解答方式: 经过几次试运行以后。我发现还是要有printf(“\n”); 但是里面只需要有一个换行符就好了 。
  • 麓鹿不迷路
    麓鹿不迷路
    虽然你没采纳我的答案,但我还是想告诉你,正常情况下你不加最后那个printf函数,也是有输出的。我很奇怪你说的没有输出是什么现象?是窗口一闪而过还是弹出窗口,但里面什么都没有?
点击展开后面5
?
麓鹿不迷路

TA贡献4条经验 获得超7个赞

楼主你好,因为你的sum()函数里调用了屏幕输出函数printf,你在主函数一共调用了三次sum()函数,所以你会看到前面的三行输出。而第四行输出,是因为你在主函数里最后又调用了一次print()函数,所以会显示这一行,但是你只提供了数字输出的格式“%d”却没有赋值,所以系统会赋值一个随机数,这也是第四行的数字乱七八糟的原因。

你可以将你的main函数增加个小东西,改成下面这样:

int main()

{

int i=1,j=2;

sum(1,10);

sum(20,30);

sum(35,45);

printf("%d到%d的和是%d.\n",i,j,i+j);

}

查看完整回答
1 反对 回复 2018-04-27
  • 慕瓜7417558
    慕瓜7417558
    对于你的回答,表示感谢。?但是我只想要三个sum的结果,不想要第四个。 经过几次试运行以后。我发现还是要有printf(“\n”); 但是里面只需要有一个换行符就好了 。
  • 麓鹿不迷路
    麓鹿不迷路
    那你为什么不把主函数里的printf去掉呢?你这样写也只是多输出了一行空格。
  • 麓鹿不迷路
    麓鹿不迷路
    #include"stdio.h" void sum(int begin,int end) { int i; int sum=0; for(i=begin;i<=end;i++) { sum+=i; } printf("%d到%d的和是%d\n",begin,end,sum); } int main() { int i=1,j=2; sum(1,10); sum(20,30); sum(35,45); getchar();//将printf删掉,加入这一行,窗口就不会一闪而过。就可以看到结果 return 0; }
点击展开后面1
?
慕瓜7417558

TA贡献3条经验 获得超1个赞

就是说不应该把%d到%d的和是%d。放到printf里面 ?
但是为什么呀??

查看完整回答
1 反对 回复 2018-04-27
  • 麓鹿不迷路
    麓鹿不迷路
    因为你只提供了数字输出的格式“%d”却没有赋值,所以系统会赋值一个随机数。你可以按我回答立的代码试试看。
?
qq_241随心_0

TA贡献3条经验 获得超0个赞

最后个,是在主函数内,由于没有赋值,所以会输出未知值

查看完整回答
反对 回复 2018-04-27
?
qq_241随心_0

TA贡献3条经验 获得超0个赞

调用了输出函数printf

查看完整回答
反对 回复 2018-04-27
  • 5 回答
  • 0 关注
  • 1884 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信