Как сделать так что бы сравнивало минимальное значение в массиве Y и выводило соответствующий этому значению элемент в массиве X?

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(){
    int *aPtr,*jPtr,size,size2,k,min,i,j;
    printf("Please input number of elements for array X:");
    scanf("%d",&size);
    aPtr = (int*)calloc(size,sizeof(int));
    for(int i=0;i<size;i++) {
        scanf("%d",&aPtr[i]);
    }
    printf("Please input number of elements for array Y:");
    scanf("%d",&size2);
    jPtr=(int*)calloc(size2,sizeof(int));
    for(int j=0;j<size2;j++) {
        scanf("%d",&jPtr[j]);
    }
    min=0;
    for(j=0;j<size2;j++)
        if(jPtr[j]<jPtr[min])
            min=i;
    printf("minimal element of array Y=%i",jPtr[min]);
    //if (jPtr[min]=&aPtr[i])printf("%d",aPtr[i]);
    return 0;
}

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

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

Задача решается линейным поиском. Переменная flag содержит номер найденного элемента или -1 если такого нет.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(){
int *aPtr,*jPtr,size,size2,k,min,i,j;
printf("Please input number of elements for array X:");
    scanf("%d",&size);
    aPtr=(int*)calloc(size,sizeof(int));
    for(int i=0;i<size;i++){
        scanf("%d",&aPtr[i]);
}
printf("Please input number of elements for array Y:");
    scanf("%d",&size2);
    jPtr=(int*)calloc(size2,sizeof(int));
    for(int j=0;j<size2;j++){
        scanf("%d",&jPtr[j]);}
        min=0;
  for(j=0;j<size2;j++)
  if(jPtr[j]<jPtr[min])
  min=i;

  printf("minimal element of array Y=%i",jPtr[min]);
  printf("\n");
  int flag=-1;
  j=0;
  while ((j<size)&&(flag==-1)){
      if (aPtr[j]==jPtr[min]){flag=j;}
        else {j++;}
  }
  if (flag>=0){printf("min of Y is on %d in X\n",flag);}
  else {printf("No minimal of Y in X\n");}
  //if (jPtr[min]=&aPtr[i])printf("%d",aPtr[i]);
  return 0;}
→ Ссылка