Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2012, 02:19   #1
ovner
 
Регистрация: 06.10.2012
Сообщений: 8
По умолчанию Бинарный поиск в матрице

Всем привет. Вообщем у меня есть матрица отсортирована по увеличению по строках и столбцах. Мне нужно с клавиатуры ввести элемент Х и найти его индексы или написать сообщение о его отсутствии, при этом Х можно сравнивать не больше чем M+N (в моем случае 10+10) элементами массива. Помогите пожалуйста написать алгоритм такого поиска.

Код:
#include <stdio.h>
#include <stdlib.h>

void sort(int x[10][10], int m, int n, int m1) // ф-я сорт по столбцах
{
        int max,i,j,temp;
        max=x[0][m1];
        for(i=0; i<n; i++)
         {
       for(j=i; j<n; j++ )
           {
                   if(x[i][m1]>x[j][m1])
                     {
                            temp=x[i][m1];
                            x[i][m1]=x[j][m1];
                            x[j][m1]=temp;
                     }
            }
         }
 }
 void Sort1(int *p, int nc)   //  ф-я сорт по строках
{
    int i, t, flag;
    do {
        flag = 0;
        for(i=1; i<nc;i++)
            if (p[i]<p[i-1])
            {
                t=p[i];
                p[i] = p[i-1];
                p[i-1]=t;
                flag = 1;
            }
    } while (flag);
}
int main(void){

	int mas[10][10];
      int nr,nc,j,i,o,u,y; int df,dg,da,ds;

    printf ("Rozmernost:");
    scanf ("%d%d",&nr,&nc);
   
    for (i=0; i<nr; i++)
    {
        
        for (j=0; j<nc; j++)
        {
			
            mas[i][j]=rand()%350;
            printf("%-5d", mas[i][j]);
        }
        printf("\n");
    }
 
	printf("\n");
	
 
for (i=0; i<nr; i++)
    sort(mas,nc,nr,i);
 for (i=0; i<nr; i++)
 Sort1(mas[i],nc);
    for (i=0; i<nr; i++)
    {
         for (j=0; j<nc; j++)
              printf("%-5d", mas[i][j]);
         printf("\n");
    }
	printf ("Vvedite element masuva:");
	scanf ("%d",&o);
	
	{
	for (i = 0; i < nr; i++)
        for (j = 0; j < nc; j++)
		u=mas[i][j]/2;
	
	if (u>o) for (i = u; ; i--)
		      for (j = u-1; ; j--); if (i||j==o) printf ("");

 
	
	

	}
	getchar();
    getchar();
    return 0;
}
ovner вне форума Ответить с цитированием
Старый 26.12.2012, 18:53   #2
ovner
 
Регистрация: 06.10.2012
Сообщений: 8
По умолчанию

апну...........
ovner вне форума Ответить с цитированием
Старый 26.12.2012, 19:22   #3
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Всем лень читать код. Почему Вы считаете, что Ваш код не работает?
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бинарный поиск. Bezukhoff Помощь студентам 0 16.03.2012 03:34
Бинарный поиск ds.Dante Свободное общение 0 25.11.2011 11:51
Бинарный поиск revaldo666 Общие вопросы C/C++ 3 06.10.2011 08:57
С++ Бинарный поиск Натаса Общие вопросы C/C++ 0 03.05.2011 09:50
Бинарный поиск Gendalf Помощь студентам 1 07.07.2007 22:09