2016-01-15 21 views
-1

我必须编写从键盘读取三个整数并输出它们的和的代码。这是否意味着只应输入整数,还是应该可以添加字符?这里是我的代码:C编程:编写一个从键盘读取三个整数并输出其总和的程序

#include <stdio.h> 

int main(void) { 
    int a, b, c, d; 

    printf("\n Enter the three numbers:"); 
    scanf("%d %d %d", &a, &b, &c); 

    d = a + b + c; 

    printf("sum of numbers is %d", d); 
} 
+0

从'scanf'的返回值将是3,如果用户输入了三个小数。如果它小于3,则一个或多个变量a,b,c将具有未初始化的值。 – user3386109

+2

你为什么问随机的陌生人你的教授想要你做什么? – mah

+0

我试图确保我对问题的解释是正确的。 – user8357

回答

3

scanf("%d %d %d", &a, &b, &c);解析输入流中选择地用空白(空格,制表符,换行符...)分离3个十进制整数。

如果有任何其他的字符存在(如字母,小数点,逗号...),或者如果没有足够的输入可用,scanf将返回比3不同的,有些输出变量不会被设置的结果。总是测试scanf的返回值。

这里是一个修正版本:

#include <stdio.h> 

int main(void) { 
    int a, b, c, d; 

    printf("\n Enter the three numbers:"); 
    if (scanf("%d %d %d", &a, &b, &c) == 3) { 
     d = a + b + c; 
     printf("sum of numbers is %d\n", d); 
    } 
    return 0; 
} 
+0

注意:“以空格分隔” - >空格是可选的。输入可以是“123-456 + 789”。 – chux

+0

@chux:优秀的评论!我想知道如何在没有空格的情况下分离整数,我没有想到符号。 – chqrlie

相关问题