#arrays #c
Вопрос:
В настоящее время код, над которым я работаю, близок, но у меня возникли проблемы с печатью сохраненных входных данных. Мой вывод должен выглядеть так, чтобы включать элементы ввода выше, а затем элементы в обратном порядке. В настоящее время мой код будет выводить только обратный массив.
#include <stdio.h>
int main(void) {
const int NUM_VALS = 4;
int courseGrades[NUM_VALS];
int i;
for (i = 0; i < NUM_VALS; i) {
scanf("%d", amp;(courseGrades[i]));
}
//above cannot be modified. Adding print statment below is
//close but only prints 4
printf("%d n", courseGrades[i];
for (i = NUM_VALS - 1; i > 0; i--) {
printf("%d ", courseGrades[i]);
}
printf("%d n", courseGrades[i]);
return 0;
}
Комментарии:
1. Строка
printf("%d n", courseGrades[i]);
не находится внутри цикла for, поэтому она печатает только одну строку.2. это было близко. Включение этой строки в цикл не работает. Ввод 7 9 10 11, так что его нужно распечатать, а затем перевернуть под ним, и это все, что у меня сейчас есть.
3. Попробуй это:
i >= 0
Ответ №1:
Просто добавьте код для печати массива
for (i = 0; i < NUM_VALS; i) {
printf("%d ", courseGrades[i]);
}
printf("n");
Комментарии:
1. к сожалению, я не могу изменить эту часть кода. Я ненавижу сайт, который мы используем для заданий
2. какую часть кода вы можете изменить?
3. Я могу изменить только после последнего } из первого цикла for.
Ответ №2:
В первом цикле for переменная i
увеличивается до NUM_VALS
значения, которое равно 4
. После этого строка имеет printf(без закрывающей скобки)
printf("%d n", courseGrades[i];
пытается печатать coursesGrade[4]
по той причине, о которой я упоминал. Но в 4-м индексе нет значения, поэтому это вызывает неопределенное поведение. Поэтому сначала вам нужно удалить эту строку.
Кроме того, как упоминалось в комментариях выше, у вас есть ненужная строка, которая
printf("%d n", courseGrades[i]);
Если вы настаиваете на его использовании, то сделайте это
printf("%d n", courseGrades[0]);
или
for (i = NUM_VALS - 1; i >= 0; i--) { // i>0 ==> i>=0
printf("%d ", courseGrades[i]);
}