c - 为什么在这种情况下两个整数的总和不起作用?
问题描述
我是 C 编程的新手,我遇到了一个简单的问题。这是以下代码...
#include <stdio.h>
/* Write a C Program that accepts two integers from the
user and calculate the sum of the two intergers. Go to the editor!
*/
int main()
{
int firstInteger, secondInteger;
int sum;
printf("Input two Integers: \n");
scanf("%d%d", &firstInteger, &secondInteger);
sum = firstInteger + secondInteger;
printf("%d", sum);
return 0;
}
在 GCC 编译器上运行我的代码后,我没有得到我期望的结果!
C:\XXXX\XXXX\XXXX\XXXX\XXXX>gcc 2sumOfTwoIntegers.c
C:\XXXX\XXXX\XXXX\XXXX\XXXX>a
Input two Integers:
25, 38
25
为什么我没有得到我输入的整数的总和?
解决方案
您期望用户在两个整数之间使用逗号输入两个整数。用户可以输入两个整数,例如
25,38
或者
25, 38
或者
25 , 38
或者
25 ,38
所有这些输入都是有效的。您需要正确处理输入。
您需要的是跳过两个数字之间的逗号。
还要考虑到两个整数之和可能太大而无法存储在 int 类型的对象中。
这是一个执行该任务的演示程序。
#include <stdio.h>
int main(void)
{
int firstInteger, secondInteger;
printf( "Input two Integers (first , second): " );
if ( scanf( "%d %*c %d", &firstInteger, &secondInteger ) == 2 )
{
long long int sum = ( long long int )firstInteger + secondInteger;
printf( "The sum of the integers is %lld\n", sum );
}
else
{
puts( "Incorect input." );
}
return 0;
}
它的输出可能看起来像
Input two Integers (first , second): 25 , 38
The sum of the integers is 63
另一种方法是读取变量中的逗号并检查用户是否确实键入了逗号。在这种情况下,程序可能看起来像
#include <stdio.h>
int main(void)
{
int firstInteger, secondInteger;
char c;
printf( "Input two Integers (first , second): " );
if ( scanf( "%d %c %d", &firstInteger, &c, &secondInteger ) == 3 && c == ',' )
{
long long int sum = ( long long int )firstInteger + secondInteger;
printf( "The sum of the integers is %lld\n", sum );
}
else
{
puts( "Incorect input." );
}
return 0;
}
推荐阅读
- angular - 带有外部拖动元素的 angular-cdk-nested-drag-drop-demo
- ansible - 在 Ansible 角色中管理不受支持的发行版的最佳方法是什么?
- logstash - 解析夏令时开始时的logstash dateparsefailure
- android - 广播接收器在冰淇淋三明治 4.0.3 上不起作用
- .net - .Net Core 3 - api - 根据 URL 请求输出 XML 和 JSON 格式(.xml、.json)
- html - 更改一种精确的 mat-tab 背景颜色 - Angular Material
- javascript - 我应该在我的代码中更改什么以设置 5 个邮政编码数字而不是 6 个?
- html - 出于某种原因,我的媒体查询切换了我原来的移动优先设计
- java - JProfiler 11 离线分析:快照的计时器触发器不起作用
- visual-studio-code - 将 tfs 添加到 VSCode 时找不到 TF 可执行文件