Как сделать так что бы сравнивало минимальное значение в массиве 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;}