(C)在printf行上显示多个变量,有些麻烦

时间:2013-09-11 01:13:45

标签: c printf scanf

我正在测试一个程序,并注意到printf正在显示我的一些存储值为0。特别是当我尝试使用printf时,在一个命令中显示它们。他们单独工作,我已经检查了这一点。 这是我的代码:


#include <math.h>
#include <stdio.h>
#include <stdlib.h>

/* Initialization of variables */
double int1;
double int2;
double int3;
double int4;
double int5;

/* Initialization of calculated values */
double a_mean;
double g_mean;
double h_mean;
double st_dev;
n = 5; /* Total number of integers for summation use */

int main()
{
    printf("Enter 5 integers, pressing 'Enter' after each:\n"); /* Prompts user input */

        /* Scans in entered integer values (5) */
        scanf("%d", &int1);
        scanf("%d", &int2);
        scanf("%d", &int3);
        scanf("%d", &int4);
        scanf("%d", &int5);

                    /* Calculations */

        /* Output */
        printf("The five integers entered were:\n");
        printf("%d, %d, %d, %d, and %d", int1, int2, int3, int4, int5);    

    return 0;
    }

命令提示输入:

输入5个整数,按&#39;输入&#39;每个之后: 1 2 3 4 5


命令提示输出:

输入的五个整数是: 1,0,2,0和3


顺便说一句,忽略中间缺少的/ *计算* /部分,我只是测试我目前的进度...... 但是看看我如何输入1,2,3,4,5只有一些值正确打印?在他们工作的个人printf线上。我做错了什么?

1 个答案:

答案 0 :(得分:4)

虽然您将这些变量命名为int1等,但它们的类型为double!因此,要么将它们声明为int,要么选择使用double

更改

scanf("%d", &int1);

scanf("%lf", &int1);

并给他们更好的名字。