X_GeQAQ 2022-12-14 22:25 采纳率: 84.6%
浏览 39
已结题

C shell 数字相加求和类型问题

编写一个名为 "loopy_ifs.csh "的C shell脚本。该脚本提示用户至少输入三个要加的数字。然后,该脚本回显用户输入的数字和数字的总数。你将需要循环和if(s)来完成这个任务。你的脚本还必须做适当的错误检查;例如,用户输入的数字少于三个或输入了一个字母。需要在一个C shell中来编写脚本。

下面是示例脚本输出:
这个C Shell脚本将把用户输入的任何数量的数字加起来,但不能少于三个。
输入至少三个空格分隔的整数来添加:9 6 //我特意只输入了两个整数
最小的输入数量是三个。再试一次:A // 我错误的输入了字母A
输入的内容无效。再试一次:3 6 9 45 54 96 2 7 // 我输入了一个可以接受的数额
给出的8个整数的总和是222 // 该脚本正确的报告了数字的个数以及总和

  • 写回答

3条回答 默认 最新

  • ShowMeAI 2022-12-14 23:18
    关注

    代码和详细注释如下,望采纳,有问题可以再沟通

    #!/usr/bin/csh
    
    echo "这个 C Shell 脚本将输入的数字相加,但您必须至少输入三个数字。"
    echo -n "至少输入三个空格分隔的整数来添加: "
    set numbers = $<
    
    #错误检查: 确保用户输入了至少三个数字
    if ( $#numbers < 3 ) then
        echo "最小输入量为三个。请重试:"
        set numbers = $<
        if ( $#numbers < 3 ) then
            echo "无效输入。退出脚本。"
            exit
        endif
    endif
    
    #错误检查: 确保用户只输入数字
    foreach num ( $numbers )
        if ( $num !~ [0-9]* ) then
            echo "无效输入。请重试:"
            set numbers = $<
            #再次检查最小数字数量
            if ( $#numbers < 3 ) then
                echo "最小输入量为三个。请重试:"
                set numbers = $<
                if ( $#numbers < 3 ) then
                    echo "无效输入。退出脚本。"
                    exit
                endif
            endif
            #检查用户的所有输入是否都是数字
            foreach num ( $numbers )
                if ( $num !~ [0-9]* ) then
                    echo "无效输入。退出脚本。"
                    exit
                endif
            end
        endif
    end
    
    #现在可以确保输入有效了,我们可直接将数字相加
    set total = 0
    foreach num ( $numbers )
        @ total += $num
    end
    
    echo "给定的 $#numbers 个整数的和是 $total
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月22日
  • 已采纳回答 12月14日
  • 创建了问题 12月14日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么