Программа, которая выводит таблицу произвольных размеров m x n с рамкой - C (СИ)
Формулировка задачи:
#include <stdio.h>
int main()
{
int i, j, n;
printf ("Введите n: ");
scanf ("%d", &n);
for(i = 1; i <= n ; i++) {
for(j = 1; j <= n ; j++) {
printf ("%5d", i * j);
}
printf("\n");
}
return 0;
}Решение задачи: «Программа, которая выводит таблицу произвольных размеров m x n с рамкой»
#include <stdio.h>
#define N 5
#define M 9
int main(void)
{
int i;
int j;
/* head */
for(j = 0; j < (5 * M + M + 1); j++)
{
if (j % (5 + 1) == 0) printf("%c", '+');
else printf("%c", '-');
}
printf("%c", '\n');
/* body */
for(i = 0; i < N; i++)
{
for(j = 0; j < M; j++)
{
if (j == 0) printf("%c", '|');
printf("%5d|", i*j);
}
printf("%c", '\n');
for(j = 0; j < (5 * M + M + 1); j++)
{
if (j % (5 + 1) == 0) printf("%c", '+');
else printf("%c", '-');
}
printf("%c", '\n');
}
return 0;
}
Объяснение кода листинга программы
В этом коде используется язык программирования C. Сначала определяются две константы: N и M. Они задают размеры таблицы. Затем в функции main() создаются две переменные i и j, которые будут использоваться в циклах. Сначала выполняется первая часть программы, которая выводит рамку таблицы. Для этого используется цикл for, который выполняется от 0 до (5M+M+1). Если значение j в делении на (5+1) равно 0, то выводится символ '+', иначе '-'. После каждой итерации выводится символ '\n'. Затем выполняется вторая часть программы, которая выводит тело таблицы. Для этого используется два вложенных цикла for. Первый цикл идет от 0 до N, а второй от 0 до M. Если значение j равно 0, то выводится символ '|'. Затем выводится значение ij, которое представляет собой элемент таблицы, с правой стороны от символа '|'. После каждой итерации выводится символ '\n'. После каждого тела таблицы выводится рамка таблицы. В конце программы возвращается 0, что означает успешное выполнение программы.