Помощь - Поиск - Пользователи - Календарь
Полная версия: С, работа с массивом
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Другие языки
Tan
Добрый день! Продолжаю изучать С, поэтому новые вопросы, пытался написать процедуру, которая в массиве ищет одинаковые элементы и записывает их в виде таблички "Элемент Столбик Ряд". Функция то работает, то нет (вероятно что-то с форами напутал). Так же хотелось бы, чтобы если элемент повторяется в графе элемент он упоминался только 1 раз,то есть если повторяется А 3 раза, то должно быть так :

 Элемент     Столбик              Ряд
   А             1                 2
                  3                 1
                  4                 4


Задание кривое, выдумал сам, надо же к чему - то стремится smile.gif. Вот что у меня вышло :
void MyFunc (int mas[n][m])  
 {
     int i, j, i1, j1;
		 printf ("Элемент              Столбик                Ряд\n ");
      for (i = 0; i <= n - 1; i++)
	for (j = 0; j <= m - 1; j++)
          {
	     for (i1 = 0; i1 <= n - 1; i1++)
	      {
	          for (j1 = 0; j1 <= m - 1; j1++)
		      if ((mas[i][j] == mas[i1][j1]) && (i != i1) && (j != j1))

                 printf ("    %d                  %d                    %d\n ",mas[i][j],i1 + 1,j1 + 1);
                   
                   }    
               
	    }
}
volvo
То есть, тебе надо, чтоб функция работала вот так:

void MyFunc (int mas[n][m]) {
  printf("%20s%20s%20s\n", "Element", "Col", "Row");
  for(int *curr = &mas[0][0], count = 0; count < m*n; curr++, count++) {

    int cnt = 0;
    int found = 0;
    for(int *p = &mas[0][0]; cnt < count; p++, cnt++)
      if(*p == *curr) {
        found = 1; break;
      }

    if(!found) {
      int counter = 0;
      for(p = curr, cnt = count; cnt < m*n; p++, cnt++)
        if(*p == *curr) {
          counter += 1;
          if(counter == 1) printf("%20d", *p);
          else printf("%20s", "");

          int num = p - &mas[0][0];
          printf("%20d%20d\n", (num / m) + 1, (num - m*(num / m)) + 1);

        }
    }
  }
}


?

(это немного не чистый С, поэтому может не компилироваться, надо все описания переменных перенести в начало функции)
Tan
Да, спасибо, то, что надо буду разбираться!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.