fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4. #include <time.h>
  5.  
  6. #define N 10
  7.  
  8. int main() {
  9. setlocale(LC_ALL, "");
  10. srand(time(NULL)); // Ініціалізація генератора випадкових чисел
  11.  
  12. int a[N][N];
  13. int n = 0; // Змінено з N + 1 на 0
  14. int A = 0, B = 0, S = 0, S1 = 0, S2 = 0;
  15.  
  16. while (n <= 0 || n > N) {
  17. printf("\nВведіть розмірність матриці (не більше %d): n = ", N);
  18. scanf("%d", &n);
  19. }
  20.  
  21. while (A >= B) {
  22. printf("\nВведіть границі проміжку A і B: ");
  23. scanf("%d %d", &A, &B);
  24. }
  25.  
  26. // Заповнення та виведення матриці
  27. printf("\n\nМатриця A:");
  28. for (int i = 0; i < n; i++) {
  29. printf("\n\n");
  30. for (int j = 0; j < n; j++) {
  31. a[i][j] = rand() % (B - A + 1) + A;
  32. printf("%5d", a[i][j]);
  33. }
  34. }
  35.  
  36. for (int i = 0; i < n; i++) {
  37. S1 += a[i][i];
  38. S2 += a[n - 1 - i][i];
  39. }
  40.  
  41. S = S1 + S2 - a[n/2][n/2]; // Виправлено для уникнення подвійного додавання центрального елемента
  42.  
  43. printf("\n\nСума діагональних елементів S = %7d\n", S);
  44.  
  45. return 0;
  46. }
  47.  
  48.  
Success #stdin #stdout 0.01s 5304KB
stdin
7    4    1
2    4    5
7    3    7
stdout
Введіть розмірність матриці (не більше 10): n = 
Введіть границі проміжку A і B: 
Введіть границі проміжку A і B: 

Матриця A:

    2    2    4    3    2    4    2

    2    2    3    4    4    2    2

    3    3    3    3    3    2    3

    4    3    3    4    4    3    2

    4    3    4    2    4    2    2

    2    4    2    2    3    4    4

    2    4    2    4    4    4    2

Сума діагональних елементів S =      38