Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Probleme retea vodafone - convorb...

De anul viitor, inmatricularea un...

Despre natura realitatii

ITP expirat = suspendarea inmatri...
 Audi a anunțat ca va schimba denu...

o intrebare va rog ?

Gareth Emery feat. Christina - Co...

PS4 Move
 Cast to LAN TV

Windows 10 Enterprise sau LTSB ?

Retur produs cumparat din magazin

Bere facuta acasa - lipsa spatiu ...
 Doogee s60 vs Ulefone Armor 2

Portare nr de telefon de la Tec T...

Setari torrent pentru Fiberlink 1...

Caut rezervor GPL TOROIDAL interi...
 
Forumul Softpedia folosește "cookies" pentru a oferi utilizatorilor o experiență completă. Vezi detalii sau închide mesaj (x)

Paralele cu diagonala principala

- - - - -
  • Please log in to reply
2 replies to this topic

#1
player2001

player2001

    Junior

  • Grup: Junior Members
  • Posts: 5
  • Înscris: 01.11.2017
  • ID membru: 999,986
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
maccip

maccip

    39 ani

  • Grup: Senior Members
  • Posts: 8,670
  • Înscris: 06.01.2007
  • ID membru: 122,957
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
player2001

player2001

    Junior

  • Grup: Junior Members
  • Posts: 5
  • Înscris: 01.11.2017
  • ID membru: 999,986

View Postmaccip, 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]

Anunturi


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users