Проблема с переносом массива

Всем привет,возникла проблема с переносом элементов массива в другой массив. после объявление Х программа просто завершается.Подскажите что не так и как должно быть правильно Условие Даны одномерный массивАнеупорядоченных целых чисел и целое число х. Записать в одномерный массив В номера элементов из А, которые равны х. Вывести на экран значения В. Предусмотреть в программе случай, когда значения х в массиве А нет.

   #include <stdio.h>
#include <conio.h>
#include <time.h>
#include <malloc.h>
#include <stdlib.h>
int main()
{
    int *A, *B;
    int num;
    int i,x,f,n;
    printf("size massiv A=\n");scanf("%d",&n);
    A = (int *)malloc(n * sizeof(int));
    B = (int *)malloc(n * sizeof(int));
    srand(time(NULL));

    for (i = 0; i <n; i++)
    {
        num = rand() % 20 + 1;
        A[i] = num;
    }
 
    for(i = 0; i <n; i++)
        {
        printf("%d ", A[i]);
        }
    printf("\ntype x:\n");  scanf("%d",&x);
    
    
    for (int i=0; i==x; i++) {
        f = 1;
        for (int i=0; x<i<x; i++) 
            if (A[i] == B[i] && i != i) {
                f = 0;
                break;
            }
        if (f == 1)  printf("%d ", B[i]);
    }
       
    free(A);
    free(B);
    getch();
    return 0;
}

Ответы (1 шт):

Автор решения: avp

Читайте внимательно свое задание:

Условие Даны одномерный массив А неупорядоченных целых чисел и целое число х.

Требуется Записать в одномерный массив В номера элементов из А, которые равны х.

Под номерами, надо понимать, подразумеваются индексы.

   int n_x = 0;
   for (int i = 0; i < n; i++)
     if (A[i] == x)
       B[n_x++] = i;

   printf("there are %d elements in the `B[]`\n", n_x);

Надеюсь, напечатать их вы сможете сами.

→ Ссылка