尝试编写一个将int和char的值求和的程序

时间:2019-05-11 04:28:43

标签: c integer character

我试图用C编写一个程序,以将整数和字符的值求和。如果用户在字符应输入的位置输入一个整数,则希望程序计算两个整数的值。我的下面代码在用户输入2个整数的情况下有效,但最多只能计算9(例如:4 5:“字符'4'代表数字。'4'和'5'的总和为9”)。如果用户输入5 6,则结果为:“字符'5'代表数字。'5'和'6'的总和为;”。我已经搜索了一段时间,任何潜在的解决方案总是导致错误的总和。我还希望程序接受高于'9'的用户输入(例如:20 50),但是如果将'9'更改为'99',则会收到以下警告:“警告:多字符常量[-Wmultichar ]”。有人可以为我指出实现这些目标的正确方向吗?

 SELECT process.id, name, item, file, sort, userprocess.id, 
        userprocess.id IS NOT NULL AS userprocess_exists
 FROM `process` 
 LEFT OUTER JOIN userprocess ON userprocess.processid = process.id
                            AND userprocess.userid = 11

2 个答案:

答案 0 :(得分:2)

int cs = sum(c, ch - 0);

您似乎想通过从用户输入的任何字符中减去ASCII值0来解释ASCII值。但是,当您要使用字符文字“ 0”时,您使用的整数文字为0。见下文:

int cs = sum(c, ch - '0');

此外,我建议将您的int重命名为i或c以外的其他名称。区分c和ch的类型有点困难。

也可以考虑更改

if((c >= '0' && c <= '9')

if((c >= 0 && c <= 9)

c是整数,您应该这样比较。通过使用“”,您基本上是将其强制转换为char变量,而此处不需要。 另一个问题是,我认为您无法使用两位数的char变量来完成您要尝试执行的操作。一个char变量可以包含一个字符,因为一个两位数由两个字符组成。

答案 1 :(得分:1)

抱歉,我无法发表评论,因此我仅使用一位数字就此问题添加了答案。

您只有一个字符

char ch;

因此它只读取一个字符,您需要一个char ch[10]这样的字符数组

然后您将使用int foo = atoi(ch)将数组转换为整数