The-Revenge
17-11-2009, 14:07
Ragazzi, sto facendo un programma in C, e come è mia conseutudine faccio runnare un pezzo alla volta il programma.
IN pratica devo stampare le 8 "parti" di una matrice NXN, con N dispari, le cui 8 parti sono "tagliate" dalle 2 diagonali e dai 2 semiassi delle matrici.
Cosi ho fatto , per prova, solo il primo quadrante, e non funziona. L'ho provato a pezzi fino al raggiungmento dell'algoritmo vero e propio che mi genera quella "fetta".Insomma mi genera correttamente e stampa correttamente il vettore.
Ovviamente ho fatto il controllo su carta dell'algoritmo e funziona bene.
Guardatelo voi, per favore
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
int max;
int n,i,j,somma=0;
printf("\nInserisci MAX: ");
scanf("%d",&max);
srand(time(NULL));
printf("\nInserisci dimensione: ");
scanf("%d",&n);
while(n%2==0){
printf("\nReinserisci dimensione dispari: ");
scanf("%d",&n);
}
int v[n][n];
for(i=0;i<n;i++)
for(j=0;j<n;j++)v[i][j]=rand()%max;
for(i=0;i<n;i++){
printf("\n");
for(j=0;j<n;j++)printf("%d ",v[i][j]);
}
for(i=0;i<n;i++)
for(j=0;j<n;j++){
while((j>((n-1)/2))&&(j<n-i-1)) somma=somma+v[i][j];
}
printf("\n%d",somma);
system("PAUSE");
return(0);
}
IN pratica devo stampare le 8 "parti" di una matrice NXN, con N dispari, le cui 8 parti sono "tagliate" dalle 2 diagonali e dai 2 semiassi delle matrici.
Cosi ho fatto , per prova, solo il primo quadrante, e non funziona. L'ho provato a pezzi fino al raggiungmento dell'algoritmo vero e propio che mi genera quella "fetta".Insomma mi genera correttamente e stampa correttamente il vettore.
Ovviamente ho fatto il controllo su carta dell'algoritmo e funziona bene.
Guardatelo voi, per favore
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
int max;
int n,i,j,somma=0;
printf("\nInserisci MAX: ");
scanf("%d",&max);
srand(time(NULL));
printf("\nInserisci dimensione: ");
scanf("%d",&n);
while(n%2==0){
printf("\nReinserisci dimensione dispari: ");
scanf("%d",&n);
}
int v[n][n];
for(i=0;i<n;i++)
for(j=0;j<n;j++)v[i][j]=rand()%max;
for(i=0;i<n;i++){
printf("\n");
for(j=0;j<n;j++)printf("%d ",v[i][j]);
}
for(i=0;i<n;i++)
for(j=0;j<n;j++){
while((j>((n-1)/2))&&(j<n-i-1)) somma=somma+v[i][j];
}
printf("\n%d",somma);
system("PAUSE");
return(0);
}