Застрял на том, как получить значение индекса из массива определенного пользователем значения - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь написать код C, в котором пользователь вводит 10 значений и индекс, а на выходе должны отображаться значения индекса из 10 значений, установленных пользователем.

Формулировка задачи:

Ваши дедушка и бабушка дали вам фантастический рецепт приготовления, но вы никогда не сможете вспомнить, сколько из каждого ингредиента вам нужно использовать!В рецепте 10 ингредиентов, и количество, необходимое для каждого из них, указано в качестве исходного (в граммах).Ваша программа должна прочитать 10 целых чисел (количество, необходимое для каждого из ингредиентов, по порядку) и сохранить их в массиве.Затем следует прочитать целое число, представляющее идентификационный номер ингредиента (от 0 до 9), и вывести соответствующее количество

Пример ввода:

500 180 650 25 666 42 421 1 370 211

3

Мой код:

#include <stdio.h>

int main(){
int ingred[9];
int readValue = 0;
int ID;
for(int i = 0; i < 9;i++){
    scanf("%d %d", &readValue,&ID);
    ingred[i] = readValue;

}
printf("%d",ingred[ID]);
return 0;
}

Мой вывод всегда равен 0. Не выполняет ли функция scanf () следующую строку кода после того, как пользователь нажал "enter"«?Пожалуйста, помогите.

1 Ответ

0 голосов
/ 10 октября 2018

Требуется ли считывать все количества из одной строки?Потому что это может быть немного сложно выполнить с Scanf.Вы можете выполнить итерацию в цикле и получить все величины по одному, например:

#include <stdio.h>

int main ()
{
  int ingredients [10];
  int newQuantity = 0;
  int ingredientId;
  int index;

  for (index = 0; index < 10; index++)
  {
      printf ("Enter quantity #%d: ", index);
      scanf ("%d", &newQuantity);
      ingredients [index] = newQuantity;

  }

  printf ("Enter the ID: ");
  scanf ("%d", &ingredientId);
  printf ("Quantity: %d\n", ingredients [ingredientId]);

  return 0;
}

В своем коде вы пытались прочитать пару целочисленных значений девять раз в цикле.Также следует обратить внимание: несмотря на то, что индексы массива начинаются с 0, когда вы объявляете массив, значение в скобках - это количество элементов массива, а не индекс последнего элемента.

...