2025-10-13 11:46:39 +02:00

62 lines
1.1 KiB
C

#include <stdlib.h>
#include <stdio.h>
int main() {
int range = -1;
printf("Rozsah:\n");
if (scanf("%d", &range) != 1 || range <= 0) {
printf("Nespravny vstup.\n");
return EXIT_FAILURE;
}
int largest_number = range * range;
int largest_digit_count = 0;
int range_digit_count = 0;
int tmp = largest_number;
while(tmp != 0) {
largest_digit_count++;
tmp /= 10;
}
tmp = range;
while(tmp != 0) {
range_digit_count++;
tmp /= 10;
}
// Header
for(int i = range + 1; i > 0; i--) {
if(i == range + 1) {
printf("%*s|", largest_digit_count, "");
continue;
}
printf("%*d", largest_digit_count + 1, i);
}
putchar('\n');
// Separator
for(int j = 0; j < largest_digit_count; j++) {
putchar('-');
}
putchar('+');
for(int j = 0; j < (largest_digit_count + 1) * range; j++) {
putchar('-');
}
putchar('\n');
// Table lines
for(int line = 1; line <= range; line++) {
printf("%*d|", largest_digit_count, line);
for(int column = range; column >= line; column--) {
printf("%*d", largest_digit_count + 1, column * line);
}
putchar('\n');
}
}