Advertisement
Guest User

Untitled

a guest
Dec 13th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <Windows.h>
  3. #include <math.h>
  4.  
  5. int main()
  6. {
  7. FILE* orig;
  8. char origtext[9999];
  9. int size = 0, side = 1, h, c = 0;
  10. char** matrix;
  11. errno_t txt;
  12. txt = fopen_s(&orig, "D:\\Хомворк\\Original.txt", "rt");
  13. if (!orig) {
  14. printf("Error\n");
  15. return 0;
  16. }
  17.  
  18. while (fgets(origtext, 200, orig) > 0)
  19. {
  20. puts(origtext);
  21. size = size + strlen(origtext);
  22. }
  23.  
  24. // Нахождение стороны
  25. int square, k;
  26. square = side * side;
  27. while (square < size) {
  28. side++;
  29. square = side * side;
  30. }
  31. printf("\n%d %d", size, side);
  32. //
  33.  
  34. // Создание массива
  35. matrix = new char* [side];
  36. for (k = 0; k < side; k++)
  37. matrix[k] = new char[side];
  38. //
  39.  
  40. h = side / 2;
  41.  
  42. // Заполнение
  43. int lap = 0, j = h;
  44. if (side % 2 == 1) { matrix[h + 1][h + 1] = origtext[c]; lap++; };
  45. if (side % 2 == 0) matrix[h + 1][h] = origtext[c];
  46. while (c < size) {
  47. for (k = h - lap; k <= h + 1 + lap; k++) { matrix[j][k] = origtext[c]; c++; }
  48. for (j = h + 1 - lap; j <= h + 2 + lap; j++) { matrix[j][k] = origtext[c]; c++; }
  49. for (k = h + lap; k >= h - lap; k--) { matrix[j][k] = origtext[c]; c++; }
  50. for (j = h + 1 + lap; j >= h - 1 - lap; j--) { matrix[j][k] = origtext[c]; c++; }
  51. lap++;
  52. }
  53. //
  54.  
  55. for (j = 0; j < side; j++)
  56. for (k = 0; k < side; k++) {
  57. printf("%c", matrix[k][j]);
  58. printf("\n");
  59. }
  60.  
  61.  
  62.  
  63. /*
  64. for (c = 0; c < strlen(origtext); c++) {
  65.  
  66. }
  67. */
  68. fclose(orig);
  69. system("pause");
  70. return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement