我正在测试一个程序,并注意到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线上。我做错了什么?
答案 0 :(得分:4)
虽然您将这些变量命名为int1
等,但它们的类型为double
!因此,要么将它们声明为int
,要么选择使用double
:
更改
scanf("%d", &int1);
到
scanf("%lf", &int1);
并给他们更好的名字。