好的,所以我在管理我的数组/ for循环方面遇到了一些麻烦(对C来说很新)。我需要询问用户他们想要输入多少种类型的油漆,然后为每种油漆取三次数据,并在最后输出所有数据。 我似乎可以从用户那里获取所有数据,它主要输出我努力奋斗的所有数据。我并不是在寻找这个特定问题的快速解决方案,因为我想了解数组/ for循环在输出数据时的工作方式(如果有意义的话)。
#include <stdio.h>
int main(void)
{
int amount, count;
int result1, result2, result3;
char paintname;
printf("Please enter how many paints you want to compare:\n");
scanf("%d", &amount);
for (count = 1; count <= amount; count++)
{
printf("Please enter the name of paint number %d:\n", count);
scanf("%s", &paintname);
printf("Please enter the first result of paint number %d:\n", count);
scanf("%d", &result1);
printf("Please enter the second result of paint number %d:\n", count);
scanf("%d", &result2);
printf("Please enter the third result of paint number %d:\n", count);
scanf("%d", &result3);
}
return 0;
}
答案 0 :(得分:1)
如果您正在寻找如何存储所有结果,则应为每个结果(和名称)使用一个数组,该数组足以容纳所有用户输入。此数组的大小是动态的(即,在用户输入时在运行时决定),因此应使用malloc()
/ calloc()
动态分配,然后{ {1}}以后再见。
答案 1 :(得分:0)
您已将paintname
声明为char
。这意味着它只包含一个字符。你需要它拥有多个字符,即char
数组:
char paintname[50];
...
scanf("%s", paintname);