鱼C论坛

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

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

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

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

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

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

                               
登录/注册后可看大图

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

                               
登录/注册后可看大图

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

  2. using namespace std;

  3. int main()
  4. {
  5.     int a,sum=0;
  6.     cout<<"请输入给定的正整数a:";
  7.     if(cin>>a && a>0)
  8.     {
  9.         cout<<endl<<"请输入5个正整数:";
  10.         for(int i=1;i<=5;i++)
  11.         {
  12.             int xi;
  13.             if(cin>>xi && xi>0)
  14.             {
  15.                 if(sum>-1)
  16.                     if(xi<a) sum+=xi;
  17.             }
  18.             else
  19.             {
  20.                 cout<<"没有正确输入第"<<i<<"个正整数!"<<endl;
  21.                 sum=-1;
  22.             }

  23.         }
  24.         if(sum>-1) cout<<"其中小于a整数的和为:"<<sum<<endl;
  25.     }
  26.     else cout<<"输入的a不是正整数!"<<endl;
  27.     return 0;
  28. }
复制代码




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

使用道具 举报

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

要解决这个问题,可以使用try-except语句来捕获异常,并进行相应的处理。具体操作如下:

  1. # 输入a和5个正整数
  2. a = input("请输入一个正整数a:")
  3. nums = []
  4. for i in range(5):
  5.     num = input("请输入第{}个正整数:".format(i+1))
  6.     nums.append(num)

  7. # 进行异常处理
  8. try:
  9.     a = int(a)
  10.     result = 0
  11.     for num in nums:
  12.         try:
  13.             num = int(num)
  14.             if num < a:
  15.                 result += num
  16.         except ValueError:
  17.             raise ValueError("第{}个数输入有误".format(nums.index(num)+1))

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

  19. except ValueError:
  20.     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-5-2 01:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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