|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2007
Messaggi: 1352
|
[Inspiegabile]Perchè non funziona?
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 Codice:
#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);
}
__________________
Ho venduto a : truedocman2004,ragen-fio Ho acquistato da :shinakuma, britt-one |
|
|
|
|
#2 |
|
Member
Iscritto dal: Jan 2007
Messaggi: 189
|
Codice:
while((j>((n-1)/2))&&(j<n-i-1)) somma=somma+v[i][j]; |
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2007
Messaggi: 1352
|
si cosi funziona. Grazie mille. Ma adesso mi chiedo : se sul libro c'è scritto che ogni IF può essere sostituito da un while (e viceversa) come deve essere strutturato il while per entrare in questo caso?
Comunque ho messo il while perchè , nel caso di quando c'è più di 1 elemento, doveva fare una somma iterativa, e non mi sono reso conto che la somma iterativa la fa comunque per l'azione dei for...quindi forse quei 2 for potevano essere sostituiti da un while che aveva come condizione, oltre quelle 2, anche una i<n (la j non c'è bisogno visto che è quadrata la matrice) e dentro l'iterazione un i++.
__________________
Ho venduto a : truedocman2004,ragen-fio Ho acquistato da :shinakuma, britt-one |
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:50.


















