Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <Windows.h>
- #include <math.h>
- int main()
- {
- FILE* orig;
- char origtext[9999];
- int size = 0, side = 1, h, c = 0;
- char** matrix;
- errno_t txt;
- txt = fopen_s(&orig, "D:\\Хомворк\\Original.txt", "rt");
- if (!orig) {
- printf("Error\n");
- return 0;
- }
- while (fgets(origtext, 200, orig) > 0)
- {
- puts(origtext);
- size = size + strlen(origtext);
- }
- // Нахождение стороны
- int square, k;
- square = side * side;
- while (square < size) {
- side++;
- square = side * side;
- }
- printf("\n%d %d", size, side);
- //
- // Создание массива
- matrix = new char* [side];
- for (k = 0; k < side; k++)
- matrix[k] = new char[side];
- //
- h = side / 2;
- // Заполнение
- int lap = 0, j = h;
- if (side % 2 == 1) { matrix[h + 1][h + 1] = origtext[c]; lap++; };
- if (side % 2 == 0) matrix[h + 1][h] = origtext[c];
- while (c < size) {
- for (k = h - lap; k <= h + 1 + lap; k++) { matrix[j][k] = origtext[c]; c++; }
- for (j = h + 1 - lap; j <= h + 2 + lap; j++) { matrix[j][k] = origtext[c]; c++; }
- for (k = h + lap; k >= h - lap; k--) { matrix[j][k] = origtext[c]; c++; }
- for (j = h + 1 + lap; j >= h - 1 - lap; j--) { matrix[j][k] = origtext[c]; c++; }
- lap++;
- }
- //
- for (j = 0; j < side; j++)
- for (k = 0; k < side; k++) {
- printf("%c", matrix[k][j]);
- printf("\n");
- }
- /*
- for (c = 0; c < strlen(origtext); c++) {
- }
- */
- fclose(orig);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement