Показать сообщение отдельно
  #13  
Старый 01.08.2015, 12:49
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Это вообще не код. Функции нельзя объявлять в функциях, функция поиска ни разу не вызывается, фигурные скобки main-а не закрыты, mat сделан int-ами, в то время как в функции используется char. Это в принципе не может скомпилироваться вообще никаким местом. Не говоря уже об ошибках и опечатках, допущенных при замене X и Y на R и C соответственно (зачем вообще это было делать?).
Вот примерно рабочий код, восстановленный из этого.
Цитата:
#include <stdio.h>
#include <Windows.h>

void deleteIsland(char **mat, int r, int c, int msize)
{
if (mat[c][r] == 0)
return;
mat[c][r] = 0;
if (c > 0)
deleteIsland(mat, r, c - 1, msize);
if (c < msize - 1)
deleteIsland(mat, r, c + 1, msize);
if (r > 0)
deleteIsland(mat, r - 1, c, msize);
if (r < msize - 1)
deleteIsland(mat, r + 1, c, msize);
}

int islandsCount(char **mat, int size)
{
int result = 0;
for (int c = 0; c < size; ++c)
for (int r = 0; r < size; ++r)
if (mat[c][r] != 0)
{
++result;
deleteIsland(mat, r, c, size);
}
return result;

}
int main(void)
{
int msize = 0;
int r, c;
FILE* fp = fopen("1.txt", "r");
if (!fp)
return 1;
fscanf(fp, "%2d", &msize);
fgetc(fp);
if (!msize)
{
fclose(fp);
return 2;
}

char** mat = new char*[msize];
for (r = 0; r < msize; r++)
mat[r] = new char[msize];

char buf[255];
char* str;

memset(buf, '\0', sizeof(buf));
for (r = 0; fgets(buf, sizeof(buf), fp); r++)
{
for (c = 0, str = strtok(buf, " "); str; str = strtok(NULL, " "), c++)
mat[r][c] = atoi(str);
}
fclose(fp);
printf("%i", islandsCount(mat, msize));
return 0;
}
Пишет ответ в консоль. В файл сам уж переделаешь.

ЗЫЖ модераторам: специально quote поставил, т.к. подсветка C++ кода как делфы, где половина кода расцвечивается рандомом, а другая половина уходит в комментарий - это кошмар... Лучше уж без отступов, чем с этим трешем.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием