为什么在这种情况下两个整数的总和不起作用?
Why is the sum of two Integers in this case not working?
我是 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
为什么我得不到我输入的整数的总和?
scanf()
不要默认跳过输入中的 ,
并停在那里,因为它不能被解释为整数。
将 ,
添加到这样的格式中,以便 scanf()
读取并删除 ,
。
scanf("%d,%d", &firstInteger, &secondInteger);
您输入的是逗号。只放一个 space
像那样
25 38
你有两种方法可以解决这个问题-
- 去掉输入的两个整数之间的','。只需这样输入:25 38.
- 如果您想在输入整数之间添加一个“,”,那么您需要在代码中进行更改。在 scanf 行你应该写:
scanf("%d,%d", &firstInteger, &secondInteger);
[注意:您在 %d 中输入的内容将在输入部分跳过。就像你想在两个变量中取两个整数小时和分钟。然后你可以写:
scanf("%d:%d", &hour, &minute);
因此,如果您在输入部分写入 - 10:30,则小时变量取 10,分钟变量取 30。
]
您希望用户输入两个整数,并在它们之间使用逗号。用户可以输入两个整数,例如
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;
}
我是 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
为什么我得不到我输入的整数的总和?
scanf()
不要默认跳过输入中的 ,
并停在那里,因为它不能被解释为整数。
将 ,
添加到这样的格式中,以便 scanf()
读取并删除 ,
。
scanf("%d,%d", &firstInteger, &secondInteger);
您输入的是逗号。只放一个 space 像那样 25 38
你有两种方法可以解决这个问题-
- 去掉输入的两个整数之间的','。只需这样输入:25 38.
- 如果您想在输入整数之间添加一个“,”,那么您需要在代码中进行更改。在 scanf 行你应该写:
scanf("%d,%d", &firstInteger, &secondInteger);
[注意:您在 %d 中输入的内容将在输入部分跳过。就像你想在两个变量中取两个整数小时和分钟。然后你可以写:
scanf("%d:%d", &hour, &minute);
因此,如果您在输入部分写入 - 10:30,则小时变量取 10,分钟变量取 30。 ]
您希望用户输入两个整数,并在它们之间使用逗号。用户可以输入两个整数,例如
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;
}