我刚刚开始在一个城镇里学习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;
}
}
答案 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
,因此您的主循环将无法运行。