main.cpp 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. // ConsoleApplication19.cpp : Defines the entry point for the console application.
  2. //
  3. #include "stdafx.h"
  4. #include <iostream>
  5. #include <time.h>
  6. using namespace std;
  7. #define N 3
  8. void carica(int matrix[][N]);
  9. void calcola(int matrix[][N], int *ps1, int *ps2);
  10. void cerca(int matrix[][N], int *pe);
  11. void max(int matrix[][N], int *pr, int *pc);
  12. void conta(int matrix[][N]);
  13. void visualizza(int matrix[][N]);
  14. int cerca2(int matrix[][N], int x);
  15. int main()
  16. {
  17. srand(time(NULL));
  18. int matrix[N][N];
  19. int somma1, somma2;
  20. int cont;
  21. int righe, colonne;
  22. carica(matrix);
  23. calcola(matrix, &somma1, &somma2);
  24. cerca(matrix, &cont);
  25. max(matrix, &righe, &colonne);
  26. visualizza(matrix);
  27. printf("La somma della diagonale principale è %d\n", somma1);
  28. printf("La somma della diagonale secondaria è %d\n", somma2);
  29. printf("L'elemento cercato è stato trovato %d volte\n", cont);
  30. printf("La riga più grande è %d\n", righe);
  31. printf("La colonna più grande è %d\n", colonne);
  32. conta(matrix);
  33. system("pause");
  34. return 0;
  35. }
  36. void carica(int matrix[][N])
  37. {
  38. for (int j = 0; j < N; j++)
  39. for (int i = 0; i < N; i++)
  40. matrix[j][i] = rand() % 10;
  41. }
  42. void calcola(int matrix[][N], int *ps1, int *ps2)
  43. {
  44. int somma1 = 0;
  45. int somma2 = 0;
  46. for (int j = 0; j < N; j++)
  47. {
  48. for (int i = 0; i < N; i++)
  49. {
  50. if (j == i)
  51. somma1 = somma1 + matrix[j][i];
  52. if ((j + i) == (N - 1))
  53. somma2 = somma2 + matrix[j][i];
  54. }
  55. }
  56. *ps1 = somma1;
  57. *ps2 = somma2;
  58. }
  59. void cerca(int matrix[][N], int *pe)
  60. {
  61. int cont = 0;
  62. int x;
  63. printf("Inserisci il numero da cercare:\n");
  64. scanf_s("%d", &x);
  65. for (int j = 0; j < N; j++)
  66. {
  67. for (int i = 0; i < N; i++)
  68. {
  69. if (matrix[j][i] == x)
  70. cont++;
  71. }
  72. }
  73. *pe = cont;
  74. }
  75. void max(int matrix[][N], int *pr, int *pc)
  76. {
  77. int maxr = 0;
  78. int sr = 0;
  79. int sc = 0;
  80. int maxc = 0;
  81. for (int j = 0; j < N; j++)
  82. {
  83. sr = 0;
  84. for (int i = 0; i < N; i++)
  85. {
  86. sr = sr + matrix[j][i];
  87. }
  88. if (sr > maxr)
  89. {
  90. maxr = sr;
  91. *pr = j;
  92. }
  93. }
  94. for (int j = 0; j < N; j++)
  95. {
  96. sc = 0;
  97. for (int i = 0; i < N; i++)
  98. {
  99. sc = sc + matrix[i][j];
  100. }
  101. if (sc > maxc)
  102. {
  103. maxc = sc;
  104. *pc = j;
  105. }
  106. }
  107. }
  108. void conta(int matrix[][N])
  109. {
  110. for (int j = 0; j < N; j++)
  111. for (int i = 0; i < N; i++)
  112. printf("Il numero %d è presente %d volte\n", matrix[j][i], cerca2(matrix, matrix[j][i]));
  113. }
  114. void visualizza(int matrix[][N])
  115. {
  116. for (int j = 0; j < N; j++)
  117. {
  118. for (int i = 0; i < N; i++)
  119. {
  120. printf("%d ", matrix[j][i]);
  121. }
  122. printf("\n");
  123. }
  124. }
  125. int cerca2(int matrix[][N], int x)
  126. {
  127. int cont = 0;
  128. for (int j = 0; j < N; j++)
  129. {
  130. for (int i = 0; i < N; i++)
  131. {
  132. if (matrix[j][i] == x)
  133. cont++;
  134. }
  135. }
  136. return cont;
  137. }