为什么1/2>0为假
带我走@ 核心会员 2016-08-04 21:35:27
3256 5 0
问题来自: 递归函数

共 5 个回答

    嘿嘿大人 一代宗师 3124天前

    因为在c语言中除法的两个操作数如果都是整形,那么它们的商也必须被强制转化为整形,所以1/2的结果应该是整形数据零,而零大于零显然是不成立的所以为假

    带我走@ 核心会员 3124天前

    回复 嘿嘿大人:可是给的答案是这样的1/2=1>0为假????????????????????

    带我走@ 核心会员 3124天前

    回复 嘿嘿大人#include <stdio.h>
    fun(int x)
    {
      if(x/2>0)
      fun(x/2);
      printf("%d ",x);
    }
    main()
    {
      fun(6);
      printf("\n");
    }
    程序运行后输出的结果是__【15】__ 。

    带我走@ 核心会员 3124天前

    回复 嘿嘿大人

    本题解析

    if语句只管fun(x/2);这一条语句,所以不管是否执行了if语句,都要输出x的值 x=6,6/2=3>0为真,调用fun函数,x=3 x=3,3/2=1>0为真,继续调用fun函数,x=1 x=1,1/2=1>0为假,因为x=1是最先结束的,所以依次输出1,输出3,输出6。因此答案为1 3 6。


    最佳答案

    嘿嘿大人 一代宗师 3124天前

    回复 带我走@:解析错了呗,这解析错的多了,好多都是我改过来的,不要去相信什么解析,要自己去理解了进行判断,解析还不是人写的

您还没有登录,所以不能回复该问题
我要回复

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题