Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
  4. #include <cstdlib>
  5. #define CLEAR_COMMAND "cls"
  6. #else
  7. #define CLEAR_COMMAND "clear"
  8. #endif
  9.  
  10. bool quadrato_magico(int** matrice, int num);
  11.  
  12. int main(){
  13.  
  14. int num;
  15.  
  16. do{
  17. std::cout << "Inserisci il numero di righe e colonne: ";
  18. std::cin >> num;
  19. }while(num < 2 || num > 30);
  20.  
  21. int** matrice = (int**) malloc(num * sizeof(int*));
  22. for (int i = 0; i < num; i++) matrice[i] = (int*) malloc(num * sizeof(int));
  23.  
  24. for(int i = 0; i < num; i++){
  25. for(int j = 0; j < num; j++){
  26. std::cout << "Inserisci il " << i * num + j + 1 << "* numero da inserire: ";
  27. std::cin >> matrice[i][j];
  28. }
  29. }
  30.  
  31. system(CLEAR_COMMAND);
  32.  
  33. for(int i = 0; i < num; i++){
  34. for(int j = 0; j < num; j++){
  35. std::cout << matrice[i][j] << " ";
  36. }
  37. std::cout << "\n";
  38. }
  39.  
  40. std::cout << "\n\nLa matrice " << (quadrato_magico(matrice, num) ? "e'" : "non e'") << " un quadrato magico.\n";
  41.  
  42. std::cout << "\n\nPress enter to continue...";
  43. std::cin.ignore();
  44. getchar();
  45.  
  46. return EXIT_SUCCESS;
  47. }
  48.  
  49. bool quadrato_magico(int** matrice, int num){
  50. int sum_dp = 0, sum_ds = 0;
  51. int sum_r = 0, sum_c = 0;
  52.  
  53. for (int i = 0; i < num; i++){
  54. sum_dp += matrice[i][i];
  55. sum_ds += matrice[i][num - i - 1];
  56. }
  57.  
  58. if (sum_dp != sum_ds) return false;
  59.  
  60. for (int i = 0; i < num; i++){
  61. sum_r = 0;
  62. sum_c = 0;
  63. for (int j = 0; j < num; j++){
  64. sum_r += matrice[i][j];
  65. sum_c += matrice[j][i];
  66. }
  67. if (sum_r != sum_dp || sum_c != sum_dp) return false;
  68. }
  69.  
  70. return true;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement