0

我刚开始在一个连青少年都是技术恐惧症边缘的小镇学习 C,所以请放轻松!^^'

我正在尝试构建一个读取多个房间的程序,然后为每个房间循环一系列用户输入。我希望能够将这些用户输入存储在一个数组中,这样我就可以在程序的稍后阶段将它们相加。我还没有转向指针或任何 malloc/realloc ;正如我所说,我学习的时间不长。任何帮助或建设性的意见[即没有指出我的完整和彻底的新手]将不胜感激!

int main(){
    int marks[20];
    int i;
    int rooms = 0;
    int j = rooms;
    char option = 0;
    int lights[20]; 
    int hrsUsed[20]; 
    int Telly_Computer[20];

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

        while (option != 'Q'){
         for(i=0;i<j;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));
                }
          return 0;
     }
}
4

2 回答 2

1

改变

scanf_s("%d", rooms);

scanf_s("%d", &rooms);

您的其他 scanf 的工作,因为它们指向数组中存储数据的位置。

for(i=0;i<j;i++)

需要是

for(i=0;i<rooms;i++)

你应该确保rooms < 20

您需要option在某个时间点设置结束循环。

于 2013-11-07T23:13:26.770 回答
0

好吧,首先,您永远不会要求option,因此您的程序将永远不会结束。当有人希望添加超过 20 个房间时,它也会崩溃。

在您阅读房间数量后,我也没有看到您进行设置j,因此您的主循环不会运行。

于 2013-11-07T23:13:50.490 回答