【发布时间】:2019-05-11 04:28:43
【问题描述】:
我正在尝试用 C 编写一个程序来对整数和字符的值求和。如果用户在字符应该在的位置输入一个整数,我希望我的程序计算这 2 个整数的值。我下面的代码适用于用户输入 2 个整数,但最多只能计算 9(例如:4 5:“字符 '4' 代表一个数字。'4' 和 '5' 的总和是 9”)。如果用户输入5 6,则结果为:“字符'5'代表一个数字。'5'和'6'之和为;”。我一直在寻找一段时间,任何潜在的解决方案总是会导致不正确的总和。我还希望我的程序接受高于 '9' 的用户输入(例如:20 50),但是如果我将 '9' 更改为 '99',我会收到以下警告:“警告:多字符字符常量 [-Wmultichar ]”。有人可以为我指明实现这些目标的正确方向吗?
#include <stdio.h>
int sum (int m, char n){
return m+n;
}
int main(){
char ch;
int c;
printf("Enter an integer and a character separated by a blank> ");
scanf("%d %c",&c, &ch);
if((c >= '0' && c <= '9')||(ch >= '0' && ch <= '9')){
int cs = sum(c, ch - 0);
printf("Character '%d' represents a digit. Sum of '%d' and '%c' is %d" , c, c, ch - 0, cs);
}
return 0;
}
【问题讨论】: