Проблема с переносом массива
Всем привет,возникла проблема с переносом элементов массива в другой массив. после объявление Х программа просто завершается.Подскажите что не так и как должно быть правильно Условие Даны одномерный массивАнеупорядоченных целых чисел и целое число х. Записать в одномерный массив В номера элементов из А, которые равны х. Вывести на экран значения В. Предусмотреть в программе случай, когда значения х в массиве А нет.
#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 шт):
Читайте внимательно свое задание:
Условие Даны одномерный массив
Анеупорядоченных целых чисел и целое числох.Требуется Записать в одномерный массив
Вномера элементов изА, которые равных.
Под номерами, надо понимать, подразумеваются индексы.
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);
Надеюсь, напечатать их вы сможете сами.