C 为什么我在终端中键入的值与我已经存储在数组中的值不匹配?
我正在制作一个程序,让我读取通过scanf函数在终端输入的整数,并从已经创建的数组中生成其赋值。以下是该计划的说明: 您的程序必须读取每个成分所需数量的10个整数,以便将它们存储在数组中。然后,它应该读取一个整数,该整数表示0到9之间的配料ID号,并输出相应的数量 例如,如果数组中存储的值是:23、54、12、51、11、10、99、32、9、14 然后,当我输入“2”时,我希望程序会打印“12”,并提示您要检查哪种成分id的重量? 但是,例如,在我键入数字“6”时,它将生成分配给数字“8”的值。因此,它将生成“9”而不是“99” 如何修复此问题?这是错误的: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("%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,则可以删除不需要的成分变量。。如果但这不是存储在数组中的值。如果存储在数组中的值为:是。如果但这不是存储在数组中的内容。