Прокомментировать код - C (СИ) (76013)
Формулировка задачи:
#include <windows.h>
#include <stdio.h>
void gotoxy(int xpos, int ypos)
{
COORD scrn;
HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE);
scrn.X = xpos; scrn.Y = ypos;
SetConsoleCursorPosition(hOuput,scrn);
}
#define SIZEX 16
#define SIZEY 18
#define FMAP_COUNTS 7
#define SCR_SP '\xB0'
#define SCR_OB '\xFE'
int screen[SIZEX][SIZEY] = {{0},{0}};
int map[4][4];
int px, py, score, nextmap;
int main(void)
{
int i, j;
int buff[SIZEX][SIZEY];
for(i = 0; i < SIZEY; i++)
for(j = 0; j < SIZEX; j++)
buff[j][i] = screen[j][i];
for(i = 0; i < 4; i++)
for(j = 0; j < 4; j++)
if(map[j][i])
buff[j + px][i + py] = 1;
gotoxy(0, 0);
for(i = 0; i < SIZEY; i++)
{
for(j = 0; j < SIZEX; j++)
{
putchar(buff[j][i] == 0 ? '\xB0' : '-');
}
putchar('\n');
}
gotoxy(SIZEX + 1, 0);
printf("Score: %i", score);
return 0;
} for(i = 0; i < SIZEY; i++)
for(j = 0; j < SIZEX; j++)
buff[j][i] = screen[j][i];
for(i = 0; i < 4; i++)
for(j = 0; j < 4; j++)
if(map[j][i])
buff[j + px][i + py] = 1;#define SCR_SP '\xB0'
Решение задачи: «Прокомментировать код»
textual
Листинг программы
for(i = 0; i < SIZEY; i++) for(j = 0; j < SIZEX; j++) buff[j][i] = screen[j][i];
Объяснение кода листинга программы
- В коде есть два вложенных цикла
for. - Переменные
iиjиспользуются как индексы для доступа к элементам массивовscreenиbuff. - Массив
screenразмеромSIZEXнаSIZEYиспользуется для хранения исходных данных. - Массив
buffразмеромSIZEXнаSIZEYиспользуется для хранения преобразованных данных. - В первой итерации внешнего цикла
forпеременнойiприсваивается значение 0, во второй - 1 и так далее доSIZEY. - В каждой итерации внутреннего цикла
forпеременнойjприсваивается значение от 0 доSIZEXс шагом 1. - В каждой итерации внутреннего цикла
forэлемент массиваscreen[j][i]копируется в элемент массиваbuff[j][i]. - После завершения выполнения внутреннего цикла
forкаждой итерации внешнего циклаfor, все элементы массиваscreenскопированы в массивbuff.