Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么我在终端中键入的值与我已经存储在数组中的值不匹配?_C_Arrays - Fatal编程技术网

C 为什么我在终端中键入的值与我已经存储在数组中的值不匹配?

C 为什么我在终端中键入的值与我已经存储在数组中的值不匹配?,c,arrays,C,Arrays,我正在制作一个程序,让我读取通过scanf函数在终端输入的整数,并从已经创建的数组中生成其赋值。以下是该计划的说明: 您的程序必须读取每个成分所需数量的10个整数,以便将它们存储在数组中。然后,它应该读取一个整数,该整数表示0到9之间的配料ID号,并输出相应的数量 例如,如果数组中存储的值是:23、54、12、51、11、10、99、32、9、14 然后,当我输入“2”时,我希望程序会打印“12”,并提示您要检查哪种成分id的重量? 但是,例如,在我键入数字“6”时,它将生成分配给数字“8”的值

我正在制作一个程序,让我读取通过scanf函数在终端输入的整数,并从已经创建的数组中生成其赋值。以下是该计划的说明:

您的程序必须读取每个成分所需数量的10个整数,以便将它们存储在数组中。然后,它应该读取一个整数,该整数表示0到9之间的配料ID号,并输出相应的数量

例如,如果数组中存储的值是:23、54、12、51、11、10、99、32、9、14 然后,当我输入“2”时,我希望程序会打印“12”,并提示您要检查哪种成分id的重量? 但是,例如,在我键入数字“6”时,它将生成分配给数字“8”的值。因此,它将生成“9”而不是“99”

如何修复此问题?

这是错误的:

scanf("%d", array);
它将读入值存储在第一个元素中。由于它将它们都存储在那里,所以它只会一直覆盖它们,结果是数组[0]中的最后一个值,其余值未初始化。改为这样做:

scanf("%d", &array[i]);
调试打印也是如此,它应该是:

printf("%i weighs %dg\n", i, array[i]);
此外,这里还有一个问题:

printf("The weight of this ingredient is: %d\n", ingredient[array]);
配料[array]是数组[Component],但配料始终为0,因为您不更改它。因此,由于另一个问题,它总是读取数组的第一个元素,即您最后设置的元素。改为使用数组[store]。您可以删除不需要的成分变量。

这是错误的:

scanf("%d", array);
它将读入值存储在第一个元素中。由于它将它们都存储在那里,所以它只会一直覆盖它们,结果是数组[0]中的最后一个值,其余值未初始化。改为这样做:

scanf("%d", &array[i]);
调试打印也是如此,它应该是:

printf("%i weighs %dg\n", i, array[i]);
此外,这里还有一个问题:

printf("The weight of this ingredient is: %d\n", ingredient[array]);
配料[array]是数组[Component],但配料始终为0,因为您不更改它。因此,由于另一个问题,它总是读取数组的第一个元素,即您最后设置的元素。改为使用数组[store]。如果数组中存储的值为:Yes,则可以删除不需要的成分变量。

。如果但这不是存储在数组中的值。如果存储在数组中的值为:是。如果但这不是存储在数组中的内容。