Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
- #include <cstdlib>
- #define CLEAR_COMMAND "cls"
- #else
- #define CLEAR_COMMAND "clear"
- #endif
- bool quadrato_magico(int** matrice, int num);
- int main(){
- int num;
- do{
- std::cout << "Inserisci il numero di righe e colonne: ";
- std::cin >> num;
- }while(num < 2 || num > 30);
- int** matrice = (int**) malloc(num * sizeof(int*));
- for (int i = 0; i < num; i++) matrice[i] = (int*) malloc(num * sizeof(int));
- for(int i = 0; i < num; i++){
- for(int j = 0; j < num; j++){
- std::cout << "Inserisci il " << i * num + j + 1 << "* numero da inserire: ";
- std::cin >> matrice[i][j];
- }
- }
- system(CLEAR_COMMAND);
- for(int i = 0; i < num; i++){
- for(int j = 0; j < num; j++){
- std::cout << matrice[i][j] << " ";
- }
- std::cout << "\n";
- }
- std::cout << "\n\nLa matrice " << (quadrato_magico(matrice, num) ? "e'" : "non e'") << " un quadrato magico.\n";
- std::cout << "\n\nPress enter to continue...";
- std::cin.ignore();
- getchar();
- return EXIT_SUCCESS;
- }
- bool quadrato_magico(int** matrice, int num){
- int sum_dp = 0, sum_ds = 0;
- int sum_r = 0, sum_c = 0;
- for (int i = 0; i < num; i++){
- sum_dp += matrice[i][i];
- sum_ds += matrice[i][num - i - 1];
- }
- if (sum_dp != sum_ds) return false;
- for (int i = 0; i < num; i++){
- sum_r = 0;
- sum_c = 0;
- for (int j = 0; j < num; j++){
- sum_r += matrice[i][j];
- sum_c += matrice[j][i];
- }
- if (sum_r != sum_dp || sum_c != sum_dp) return false;
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement