鱼C论坛

 找回密码
 立即注册
查看: 875|回复: 2

为什么输入的是字符串时会错误输出

[复制链接]
发表于 2024-1-2 15:42:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
    求助,做题的时候需要实现这样一个功能:输入一个正整数a和5个正整数,输出5个正整数里小于a的数之和,且不能利用指针;如果a的输入有问题会提示a有问题,如果5个正整数有问题,会提示第几个数有问题;
    但是在运行代码时,如果输入的5个正整数中中间有一个是字符串,之后的输入明明是对的也会输出错误信息;如果是负数,就不会,请问是哪里出问题了呢?
    我的运行如下:
        当第4个数输入是负数时,结果提示第4个数输入有误:
        

                               
登录/注册后可看大图

        当第4个数输入为字符,而第5个数输入正确时,结果还错误提示第5个数的输入有误:
        

                               
登录/注册后可看大图

    我的代码如下:
#include <iostream>

using namespace std;

int main()
{
    int a,sum=0;
    cout<<"请输入给定的正整数a:";
    if(cin>>a && a>0)
    {
        cout<<endl<<"请输入5个正整数:";
        for(int i=1;i<=5;i++)
        {
            int xi;
            if(cin>>xi && xi>0)
            {
                if(sum>-1)
                    if(xi<a) sum+=xi;
            }
            else
            {
                cout<<"没有正确输入第"<<i<<"个正整数!"<<endl;
                sum=-1;
            }

        }
        if(sum>-1) cout<<"其中小于a整数的和为:"<<sum<<endl;
    }
    else cout<<"输入的a不是正整数!"<<endl;
    return 0;
}



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-1-2 15:42:20 | 显示全部楼层
在Python中,输入的是字符串时会出现错误输出,是因为在代码中进行数值比较和数值运算时,字符串并不具有数值属性,不能直接参与比较和运算。

要解决这个问题,可以使用try-except语句来捕获异常,并进行相应的处理。具体操作如下:
# 输入a和5个正整数
a = input("请输入一个正整数a:")
nums = []
for i in range(5):
    num = input("请输入第{}个正整数:".format(i+1))
    nums.append(num)

# 进行异常处理
try:
    a = int(a)
    result = 0
    for num in nums:
        try:
            num = int(num)
            if num < a:
                result += num
        except ValueError:
            raise ValueError("第{}个数输入有误".format(nums.index(num)+1))

    print("小于a的数之和为:", result)

except ValueError:
    print("a输入有误")

这样,当输入的a或者nums中任意一个正整数有问题时,都能够正确地提示对应的错误信息。同时,只有输入正确的正整数时,才会输出求和结果。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-1-5 16:28:53 | 显示全部楼层
FishC 发表于 2024-1-2 15:42
在Python中,输入的是字符串时会出现错误输出,是因为在代码中进行数值比较和数值运算时,字符串并不具有数 ...

我猜测问题可能出于字符串的存储上
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 21:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表