Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Mostenirea bunicii

Semnal slab = nu se vad unele pro...

MGTOW/Antifeminism in Romania

Ce incarcator sa aleg?
 AMD SUX

RDS AN5506-02-FG GPON Double NAT

Copiere contacte din IOS pe Android

Ford Focus 2009
 Fujifilm Hs30 exr sau nikon l820

Succesiune cu cateva probleme de ...

DSLR Canon

Mascatii iar au gresit adresa
 Activare Windows 10

Habitat 23 SE

cititul - doar sezand, la birou?

Logica bobitelor de mustar in mus...
 
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
3 replies to this topic

#1
player2001

player2001

    Junior

  • Grup: Junior Members
  • Posts: 6
  • Î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

    40 ani

  • Grup: Senior Members
  • Posts: 9,855
  • Î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: 6
  • Î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]

#4
versacic

versacic

    Junior

  • Grup: Members
  • Posts: 197
  • Înscris: 28.10.2017
  • ID membru: 999,647
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