Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Some apps or processes are overlo...

LG V30

Mihaela Radulescu, inlocuita cu A...

Liberalismul progresist a ruinat ...
 Doar despre abuzurile Jandarmeri...

Lumini interior Golf 5 - Problema

Se poate sa reclam vecinul pentru...

Deconectare Date
 Recomandare carti pentru cunoaste...

Pictura - tehnici, nuanțe cu...

problema placa video

Prima scadere pe mobil pentru Digi
 ONEPLUS 6T - zvonuri

Ati mai vazut "filmul" as...

Casetofon Jvc Kd G201

Lucid Dreaming
 

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
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: 11,949
  • Înscris: 06.01.2007
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

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
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

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate