需要用户输入并在最后输出所有内容

时间:2015-10-29 00:49:02

标签: c arrays for-loop

好的,所以我在管理我的数组/ 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;
}

2 个答案:

答案 0 :(得分:1)

如果您正在寻找如何存储所有结果,则应为每个结果(和名称)使用一个数组,该数组足以容纳所有用户输入。此数组的大小是动态的(即,在用户输入时在运行时决定),因此应使用malloc() / calloc()动态分配,然后{ {1}}以后再见。

答案 1 :(得分:0)

您已将paintname声明为char。这意味着它只包含一个字符。你需要它拥有多个字符,即char数组:

char paintname[50];
...
scanf("%s", paintname);