0

我正在中途测试一个程序,并注意到 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 个整数,每个后按“Enter”:1 2 3 4 5


命令提示符输出:

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


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

4

1 回答 1

4

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

改变

scanf("%d", &int1);

scanf("%lf", &int1);

并给他们更好的名字。

于 2013-09-11T01:17:27.740 回答