Second Opinion
Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale. Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit. www.neurohope.ro |
Paralele cu diagonala principala
Last Updated: Dec 14 2017 05:36, Started by
player2001
, Nov 13 2017 20:58
·
0
#1
Posted 13 November 2017 - 20:58
Salut ...cum as putea sa separ paralelele diagonalei principale :
#include <iostream> using namespace std; int main() { int mat[20][20]; int n,i,j,d; cin>>n; for(i=0;i<n;i++) for(j=0;j<n;j++) { cin>>mat[i][j]; } for(i=0;i<n;i++) { for(j=0;j<n;j++)cout<<mat[i][j]<<" "; cout<<endl; } d=n-1; while(d>=0) { for(i=0;i<n-d;i++)cout<<mat[i][i+d]<<" "; d--; } return 0; } asta e codul care l-am folosit ,dar mi le da una dupa alta pe aceiasi linie Pt 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 sa-mi afiseze 4 3 8 2 7 12 |
#2
Posted 14 November 2017 - 00:01
Iti lipseste un cout<<endl; dupa(sau inainte de) d--;
Insa, mai elegant, ecuatia unei paralele cu diagonala este i=j+d, unde. Tie iti lipsesc cateva diagonale acolo. In total sunt 2n-1 paralele, nustiu care ti-a fost intentia. Pentru : d ∈ [-n+1 , n-1] i ∈ [0 , n-1] j ∈ [0 , n-1] Avem pentru d ∈ [-n+1 , n-1], fixat: i ∈ [d, d+n-1] ∩ [0 , n-1] sau, altfel zis pentru d>=0 i ∈ [d, n-1] iar pentru d<0 i ∈ [0, d+n-1] si j=i-d Deci, eu as face asa(daca e sa le afisez pe toate 2n-1 paralelele): for(d=-n+1; d<0; d++) //d<0 { for(i=0; i<d+n; i++) cout<<mat[i][i-d]<<" "; cout<<endl; } // aici deja avem d=0, dar... hai sa fie mai clar. for(d=0; d<n; d++) //d>=0 { for(i=d; i<n; i++) cout<<mat[i][i-d]<<" "; cout<<endl; } //Daca le vrei in ordine inversa, scrii forurile for(d=n-1;d>=0;d--) respectiv for(d=0;d>-n;d--), avand grija care din ele e pentru d>=0 respectiv d<0 Poti utiliza si operatorul ? : pentru a putea folosi un singur for. Scrii ceva de genul: for(d=-n+1; d<n;d++) { for(i=(d>=0 ? d : 0); i<(d>=0 ? n : d+n); d++) cout<<mat[i][i-d]<<" "; cout<<endl; } |
#3
Posted 14 November 2017 - 07:41
maccip, on 14 noiembrie 2017 - 00:01, said:
Iti lipseste un cout<<endl; dupa(sau inainte de) d--; Insa, mai elegant, ecuatia unei paralele cu diagonala este i=j+d, unde. Tie iti lipsesc cateva diagonale acolo. In total sunt 2n-1 paralele, nustiu care ti-a fost intentia. Pentru : d ∈ [-n+1 , n-1] i ∈ [0 , n-1] j ∈ [0 , n-1] Avem pentru d ∈ [-n+1 , n-1], fixat: i ∈ [d, d+n-1] ∩ [0 , n-1] sau, altfel zis pentru d>=0 i ∈ [d, n-1] iar pentru d<0 i ∈ [0, d+n-1] si j=i-d Deci, eu as face asa(daca e sa le afisez pe toate 2n-1 paralelele): for(d=-n+1; d<0; d++) //d<0 { for(i=0; i<d+n; i++) cout<<mat[i][i-d]<<" "; cout<<endl; } // aici deja avem d=0, dar... hai sa fie mai clar. for(d=0; d<n; d++) //d>=0 { for(i=d; i<n; i++) cout<<mat[i][i-d]<<" "; cout<<endl; } //Daca le vrei in ordine inversa, scrii forurile for(d=n-1;d>=0;d--) respectiv for(d=0;d>-n;d--), avand grija care din ele e pentru d>=0 respectiv d<0 Poti utiliza si operatorul ? : pentru a putea folosi un singur for. Scrii ceva de genul: for(d=-n+1; d<n;d++) { for(i=(d>=0 ? d : 0); i<(d>=0 ? n : d+n); d++) cout<<mat[i][i-d]<<" "; cout<<endl; } Mersi ! Imi trebuia toate diagonalele.... nu mi-a dat seama ca endl trebuia pus dupa d--;eu am incercat sa-l pun dupa mat[i][i+d] |
#4
Posted 14 December 2017 - 05:36
Mie nu-mi merge programul
Imi da vreo 2-3 erori in MingGW |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users