ragazzi ho fatto quetso programma ma mi crea dei problemi cosa mi suggerite di fare?
#include <iostream>
using namespace std;
int main(){
int i, j,controllo,n;
i=0;
j=0;
bool contr=false;
cout<<"Inserire il numero di righe e colonne della matrice"<<endl;;
cin>>n;
int mat[n][n];
int somme[n+2];//per fare somma diagonali
int sommerig[n];
for(i=0;i<n+2;i++){
somme[i]=0;
sommerig[i]=0;
}
for(i=0;i<n;i++) {
for(j=0;j<n;j++) {
cout<<endl;
cout<<" Riga: "<<i<<" Colonna: "<<j<<" ";
do{
cin>>mat[i][j];
//mettiamo ||
}while((mat[i][j]>(n*n))||(mat[i][j]<1));
}
}
//faccio la somma degli elementi per ogni riga e la salvo in un vettore somma di nome sommerig
for(j=0;j<n;j++) {
for(i=0;i<n;i++) {
sommerig[j]+=mat[i][j];
}
}
for(i=0;i<n;i++) {// faccio la somma per ogni colonna e la salvo in un altro vettore somme
for(j=0;j<n;j++) {
somme[i]+=mat[i][j];
}
}
for(i=0;i<n;i++) { //faccio la somma della diagonale principale
somme[n]+=mat[i][i];
}
j=n;
for(i=0;i<n;i++){ //faccio la somma della diagonale secondaria
somme[n+1]+=mat[i][j];
j--;
}
for(i=0;i<n;i++){
cout<<somme[i]<<endl;
}
for(i=0;i<n;i++){
cout<<sommerig[i]<<endl;
}
//inizio controlli
controllo=somme[0];
for(i=1;i<(n+2);i++) {
if(controllo!=somme[i]){
contr=true;
break;
}
}
controllo=sommerig[0];
for(i=0;i<n;i++) {
if(controllo!=sommerig[i]){
contr=true;
break;
}
}
//qui guardo se il controllo è vero o falso
if(contr=false) cout<<" La matrice inserita e' un quadrato magico"<<endl;
else cout<<" La matrice inserita non e' un quadrato magico "<<endl;
system("pause");
return 0;
}
grazia in anticipo di 10 punti al migliore
Aggiornamento:si bravo gigi ma non mi tornano i controlli finali ad esempio faccio una matrice 3x3 3 righe e tre colonne e metto tutti uni mi da che non è un matrice magica
Aggiornamento 3:Gigi hai provato a mettere una matrice con tutti 1 e una matrice con un 1 e tutti due mettendo contr in questo modo : !contr?
Copyright © 2024 QUIZSILO.COM - All rights reserved.
Answers & Comments
Verified answer
Ciao.. io purtroppo all'università ho incominciato quest'anno a fare il linguaccio C quindi del c++ ci capisco poco!!
ma se ho ben capito devi verificare se un quadrato è magico o no, dopo che hai digitato i tu i numeri ce lo compongono!!
Ma a questo punto non basta fare la somma della prima riga, della seconda.... fino all'ultima e salvo ogni somma in un vettore...
poi faccio lo stesso per le colonne... e poi lo stesso per le due diagonali!
confronto e il gioco è fatto..
No?!?!?!!?
========
sai k forse ho trovato l'errore????
quando hai scritto:
if(contr=false)
devi mettere il doppio uguale!!! se no è un assegnamento!!! ho provato a farlo sul mio pc e funziona!! :)
k bello ho risolto l'esercizio senza capirci una fava!! :)
========
Ti ripeto che i comandi di c++ non li conosco, ho fatto quella semplice modifica,
ho inserito tutti 1 e l'esercizio funzionava correttamente!
1) NON DICI in che linguaggio è stato scritto.
cmq sarebbe difficile riprodurre il tuo environment di programmazione.
2) NON DICI quali siano i problemi riscontrati...
NON carica tutti i dati del quadrato?
SBAGLIA a fare la somma delle colonne o delle righe?
SBAGLIA A DIAGNOSTICARE se è quadrato magico o no?
Insomma... dacci una mano a capire che diavolo sta succedendo... altrim siamo fottuten jaaaa !