Не вижу ошибку - C (СИ)
Формулировка задачи:
Что-то не могу увидеть ошибку.Во втором массиве выдает только 1 элемент и все.Весь вечер сижу за компьютером и не могу увидеть в чем,собственно,загвоздка.Посмотрите свежим взглядом.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> #define N 35 void input_array(int *A, int A_size); void print_array(int *A, int A_size); /*ЭТО КОСТЫЛЬ ДЛЯ ФУНКЦИИ ИТОА, КОТОРОЙ НЕТ В ЛИНУКСЕ*/ /* reverse: переворачиваем строку s на месте */ void reverse(char s[]) { int i, j; char c; for (i = 0, j = strlen(s) - 1; i < j; i++, j--) { c = s[i]; s[i] = s[j]; s[j] = c; } } /*ЭТО КОСТЫЛЬ ДЛЯ ФУНКЦИИ ИТОА, КОТОРОЙ НЕТ В ЛИНУКСЕ*/ void itoa(int n, char s[]) { int i, sign; if ((sign = n) < 0) /* записываем знак */ n = -n; /* делаем n положительным числом */ i = 0; do { /* генерируем цифры в обратном порядке */ s[i++] = n % 10 + '0'; /* берем следующую цифру */ } while ((n /= 10) > 0); /* удаляем */ if (sign < 0) s[i++] = '-'; s[i] = '\0'; reverse(s); } /*ЗДЕСЬ ПРОГРАММА*/ int main() { char *ach; char p[17]; int y = 10; int i, X = 0; int A[N]; srand(time(0)); input_array(A, N); puts("\nDo:"); print_array(A, N); printf("Vvedite chislo X="); scanf("%i",&X); for (i = N - 1; i != 0; --i) { while (A[i] =X) { int tmp = A[i]; A[i] = 0; break; } } int b_size = N; // Выделение памяти под новый массив и его заполнение int * b = (int *)malloc(sizeof(int) * b_size); for (i = b_size - 1; i != 0; --i) { //тоже с конца прогоняем по while (A[i] != 0) //условию,что элемент не равен 0 { b[i] = A[i];//то элемент второго массива равен элементу первого break; } } puts("\nPosle:"); while (i < sizeof(A))//цикл пока i менее длины массива { i++; } print_array(A, b_size); getchar(); return 0; } void input_array(int *A, int A_size) { int i; for (i = 0; i < A_size; i++) { A[i] = 17 + rand() % (100 - 10); //генерируем массив } } void print_array(int *A, int A_size) { int i = 0; while (i < A_size) { if (A[i] != 0) printf("%4d", A[i]); //printf("\n"); i++; } puts(""); }
Решение задачи: «Не вижу ошибку»
textual
Листинг программы
while (A[i] =X)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д