Школьный проект для компьютерных наук. Мне нужно создать программу, в которой пользователь объявляет размер массива, а затем заполняет массив численным, неубывающим порядком, затем объявляет значение x. Затем X присваивается соответствующему месту, поэтому весь массив находится в числовом, неубывающем порядке. Затем массив выводится.C Справка по программе: Неожиданный вывод
Код строится должным образом без ошибок, но выход испорчен.
#include <stdio.h>
int main (void) {
//Local Declarations
int size;
int ary[100];
int x;
int i;
int j;
//Statements
printf("Enter the size of the array: ");
scanf("%d", &size);
printf("\nEnter digits to fill the array, in numerical order: ");
for (i = 0; i < size; i++) {
scanf("%d", &ary[i]);
}
size++;
printf("\nInput x, the value to add to the array: ");
scanf("%d", &x);
while(i=0 <= x && x > ary[i]){
i++;
j = size - 1;
while(j >= i) {
ary[j++] = ary[j];
j--;
}
}
for(i = 0; i < size; i++) {
printf("%d,", ary[i]);
}
return 0;
} //main
Результат:
Enter the size of the array: 5
Enter digits to fill the array, in numerical order: 1
2
3
4
5
Input x, the value to add to the array: 6
1,2,3,4,5,1630076519,
Process returned 0 (0x0) execution time : 8.585 s
Press any key to continue.
Это всегда последнее значение, которое портит до этого огромного количества. Почему я не могу понять, почему. Проект должен состояться в полночь EST.
Что ваша цель здесь 'я = 0 <= x'? Похож на логическую ошибку. –
'ary [j ++] = ary [j];' также нелогично: строка присваивает одно значение самому себе. – rae1
Мне нужно вернуть я обратно в 0, но программа сработает, если я просто сделаю заявление выше цикла while «i = 0;» –