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 MATLAB yalmip gurobi求解器
  • ¥15 关于#stm32#的问题:第一张图是发送数据代码,第二第三张图是接收数据并进行DAC转换的函数,若用串口一接收数据并进行DAC转换,主函数代码该怎么写
  • ¥20 hc130怎么读写内部flash存储信息
  • ¥15 Axure rp9注册与登录交互
  • ¥15 我下载图形界面重启完就变成这样了,打字也打不了,动也动不了,该怎么解决(操作系统-centos)
  • ¥15 VBA中在窗体中遍历所有checkbox控件,提取出被选中的checkbox的caption值
  • ¥15 在Ubuntu上有什么命令,或者是系统文件能告诉我链接nvme ssd的pcie槽位是不是支持热插拔功能?
  • ¥15 ansys license许可证问题
  • ¥20 QQ号和密码都能正常登录微信 QQ号和密码登录微信显示密码错误
  • ¥15 单片机RTOS Kernel与应用分离开发,Kernel如何调起应用?