ВУЗ:
Составители:
Рубрика:
matr->m_xsize=0;
matr->m_ysize=0;
DBG(("Successful call to 'free_matr': matr=%p\n",matr));
}
/* Получение указателя на элемент "двумерной" матрицы */
MATR_BASETYPE* at_matr(unsigned int x, unsigned int y, struct t_matr
*matr) {
/* проверка корректности аргументов */
if ((x >= matr->m_xsize) || (y >= matr->m_ysize)) {
DBG(("Error calling 'at_matr': x=%u, y=%u, matr-
>m_xsize=%u, matr->m_ysize=%u\n",x,y, matr->m_xsize, matr->m_ysize));
return NULL;
};
DBG(("Successful call to 'at_matr': x=%u, y=%u,
matr=%p\n",x,y,matr));
return &matr->m_ptr[ y*matr->m_xsize + x ];
}
/* ===== Работа с файлами ===== */
/* чтение исходных данных.
Входные данные: filename --- имя файла
Выходные данные: matr --- матрица принадлежности граждан
партиям */
int ReadInput (const char *filename, struct t_matr *matr) {
FILE *fh;
unsigned int N;
unsigned int ibuffer;
int i;
int result;
char buffer[10000];
char *cur_pos;
int offset;
fh=fopen(filename, "r");
/* проверка результата */
if (fh == NULL) {
DBG(("Error opening file in 'ReadInput':
filename=%s\n",filename));
return ERR_FILE;
};
if (fscanf(fh,"%u",&N) != 1) {
DBG(("Error reading table size in 'ReadInput':
filename=%s\n",filename));
fclose(fh);
return ERR_FILEFORMAT;
};
/* выделение новой матрицы */
alloc_matr(N,N,matr);
fgets(buffer, 10000, fh);
for (i=0; i<N; i++) {
if (fgets(buffer, 10000, fh) != NULL) {
offset=0;
cur_pos=buffer;
while (sscanf(cur_pos,"%u%n",&ibuffer,&offset) ==
1) {
Страницы
- « первая
- ‹ предыдущая
- …
- 33
- 34
- 35
- 36
- 37
- …
- следующая ›
- последняя »