0

我知道这将是我的一个愚蠢的失误或疏忽,但我无法让其中的数组正确打印出来。当我运行代码并输入我的输入时,我得到看似随机的数字。例如,房间数量是 1 瓦的灯是 2 小时使用是 2 电视/电脑是 2

我得到的输出是 3930804。我错过了什么?

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main()
{
    int room[20] = {0.0};
    int i;
    int rooms = 0;
    char option = 0;
    int lights[20]; 
    int hrsUsed[20]; 
    int Telly_Computer[20];

    printf("Enter number of rooms");
    scanf_s("%d", &rooms);


        for(i=0;i<rooms;i++)
    {
        printf("input wattage of lights");
        scanf_s("%d", (lights+i));
        printf("input number of hours use/day (average)");
        scanf_s("%d", (hrsUsed+i));
        printf("input number of TV/Computers");
        scanf_s("%d", (Telly_Computer+i));
    }

        printf("%d \n", lights);

}
4

2 回答 2

1
printf("%d \n", lights);

您正在直接打印数组。您需要遍历它并一次打印一个元素。

int i;
for (i = 0; i < 20; ++i)
  printf("%d\n", lights[i]);
于 2013-11-11T00:08:58.747 回答
1

您只是在打印灯的地址(顺便说一下,使用 UndefinedBehavior,地址必须用 %p 打印)。您必须使用循环打印出每个数组槽的所有内容。

for(int i=0;i<(sizeof(lights)/sizeof(int));i++)
    printf("%d\n",lights[i]);
于 2013-11-11T00:10:47.837 回答