关于用C语言填充数组的用户输入的问题

时间:2013-11-07 23:09:13

标签: c arrays

我刚刚开始在一个城镇里学习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;
     }
}

2 个答案:

答案 0 :(得分: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以结束循环。

答案 1 :(得分:0)

嗯,首先,你永远不会要求option,所以你的程序永远不会结束。当有人希望增加20多个房间时,它也会崩溃。

在您阅读房间数量后,我没有看到您设置j,因此您的主循环将无法运行。