芒果芭乐 2024-04-27 17:58 采纳率: 90.2%
浏览 2
已结题

向上取整的思路是什么

img


题目:
i,j都是整型,i是被除数,j是除数,对其结果向上取整并输出。
if语句怎么嵌套啊?花括号的位置不太清楚
我这个写的有什么问题吗

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-27 17:58
    关注

    引自免费微信小程序:皆我百晓生

    在C语言中,为了实现向上取整的功能,你需要根据给定的条件正确地嵌套if语句,并确保每个分支都有正确的花括号对({})来包围它们的代码块。在您的代码示例中,有一些语法错误和不必要的部分。下面是修改后的代码,它应该能按照要求执行向上取整的操作:

    #include <stdio.h>
    
    int main() {
        int i, j, s;
        
        // 读入输入值
        scanf("%d %d", &i, &j);
        
        // 检查输入是否在有效范围内
        if (i >= 1 && j <= 106) {
            // 计算向上取整的结果
            s = i / j + (i % j != 0); // 这一行已经包含了向上取整的逻辑
            
            // 输出结果
            printf("%d", s);
        } else {
            // 如果输入不在有效范围内,则输出错误信息
            printf("Invalid input");
        }
    
        return 0;
    }
    

    在这个版本的代码中,我做了以下改进:

    1. 移除了多余的if语句。
    2. if(i%j==0)else{ s=i/j+1; ... }合并为一个表达式s = i / j + (i % j != 0);。这里,(i % j != 0)会返回一个布尔值(0或1),当余数不等于0时(即需要向上取整的情况),它会加1到商上。
    3. 更改了错误处理部分,将错误输出移到输入检查之后。

    现在这段代码应该可以正确地计算并输出向上取整的结果,同时处理无效输入的情况。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月6日
  • 已采纳回答 4月28日
  • 创建了问题 4月27日

悬赏问题

  • ¥15 AD9910输出波形向上偏移,波谷不为0V
  • ¥15 淘宝自动下单XPath自动点击插件无法点击特定<span>元素,如何解决?
  • ¥15 曙光1620-g30服务器安装硬盘后 看不到硬盘
  • ¥15 抖音直播广场scheme
  • ¥15 为什么我明明有这个文件调试器还显示错误?
  • ¥15 软件工程用例图的建立(相关搜索:软件工程用例图|画图)
  • ¥15 如何在arcgis中导出拓扑关系表
  • ¥15 处理数据集文本挖掘代码
  • ¥15 matlab2017
  • ¥15 在vxWorks下TCP/IP编程,总是connect()报错,连接服务器失败: errno = 0x41