Здравствуйте, я стараюсь практиковать себя в C, используя массивы. Сначала я создаю 2D-массив и инициализирую его некоторыми элементами, затем я создаю второй 1D-массив, в котором я хочу сохранить позицию (точнее, строку) элемента, но только если он существует в 2-мерном массиве.
Я покажу вам свой код, чтобы помочь вам лучше понять.
КОД
#include<stdio.h>
#define N 11
int main(){
/* 2d array */
int arr[5][3] = {
{2, 1, 2},
{15, 15, 11},
{10, 2 , 2},
{9, 9 , 10},
{3, 2, 3}
};
int elmFound[N]; /* 1d array in which i want to store the position of an element */
int i ,j;
int x = 2; /* The element i want to search in 2d array if exists*/
for (i = 0 ; i< 5; i++){
for(j = 0; j<3; j++){
if(arr[i][j] == x){
elmFound[i] = i+1;
printf("Number %d found in rows : %d \n" , x , elmFound[i]); }}}}
ВЫХОД
Number 2 found in rows : 1
Number 2 found in rows : 1
Number 2 found in rows : 3
Number 2 found in rows : 3
Number 2 found in rows : 5
Как я могу исправить код для сохранения позиции (строки) только элемента один раз? Я хочу, чтобы мой вывод был:
Number 2 found in rows : 1
Number 2 found in rows : 3
Number 2 found in rows : 5