Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Avocatul Poporului vs European Om...

Recomandari firme pentru draperii...

Receptie Eutelsat 5 West. Este po...

Poti receptiona semnal de la mai ...
 Cabluri HDMI 2.1 de 4m-5m care sa...

Zoom comparat cu Google Meet

Monitor/Display wireless?

Pornire greoaie dupa cateva zile ...
 De la un proiect scris in python ...

Audi A4 B9 quattro 190 CP!

Tepari la pariuri pe TikTok

Banca imi cere justificativ fondu...
 schema pcb ELECTRA CIM150 PAS

Probleme stomac

Sfat achizitie bicicleta oras

Canalele Sky Showtime 1 și S...
 

[TEMA] Construire matrice in ordine crescatoare pe linie, apoi pe coloana

- - - - -
  • This topic is locked This topic is locked
5 replies to this topic

#1
lunyu

lunyu

    New Member

  • Grup: Members
  • Posts: 3
  • Înscris: 20.10.2014
Scrieți un program C/C++ care citește de la tastatură un număr natural n (2<n<20), construiește în
memorie și afișează pe ecran o matrice cu n linii și n coloane, în care fiecare element de pe diagonala
secundară are valoarea n, fiecare element aflat deasupra diagonalei secundare este mai mic cu o unitate
decât vecinul aflat pe aceeași linie în dreapta lui și fiecare element aflat sub diagonala secundară este
mai mare cu o unitate decât vecinul aflat pe aceeași linie în stânga lui. Elementele matricei vor fi
afișate pe ecran, câte o linie a matricei pe câte o linie a ecranului cu câte un spațiu între elementele
fiecărei linii.
Exemplu: pentru n=5 se va afișa matricea de mai jos.
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9

Iar asta e ce am facut eu , nu ma prind ce nu e bine , sub diagonala principala imi da bine :)
#include <iostream>
using namespace std;
int main()
{
    int n,i,j,a[10][10];
    cout<<"n=";
    cin>>n;
    for(i=1;i<=n;i++)
    for(j=1;j<=n;j++)
   {
   if(i+j==n+1)
    a[i][j]=n;
if(i+j<n+1)
a[i][j]=a[i][j]-1;
if(i+j>n+1)
    a[i][j]=a[i][j-1]+1;}
    for(i=1;i<=n;i++)
    {
    for(j=1;j<=n;j++)
    cout<<a[i][j]<<" ";
    cout<<endl;
    }
}
Multumesc frumos !

#2
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Porneste buclele for de la 0 pana la n, exclusiv, nu de la 1 la n, inclusiv. E gresit.

Apoi gandeste-te la relatia matematica dintre i, j, si valoarea actuala.

Partea cu diagonala e la deruta, se poate fara if-uri.

#3
lunyu

lunyu

    New Member

  • Grup: Members
  • Posts: 3
  • Înscris: 20.10.2014
Oau , sunt socat , era asa de simplu si m-am complicat asa de tare , mi-am dat seama cam greu , cred ca si de la oboseala , multumesc foarte mult ! :cheers:

Era doar : a[i][j]=i+j-1; :roflmaofast:

#4
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postlunyu, on 20 octombrie 2014 - 22:26, said:

Oau , sunt socat , era asa de simplu si m-am complicat asa de tare , mi-am dat seama cam greu , cred ca si de la oboseala , multumesc foarte mult ! Posted Image

Era doar : a[j]=i+j-1; Posted Image

Repeta dupa mine:

asa nu: for(i=1;i<=n;i++)

asa da: for(i=0;i<n;i++)

Edited by OriginalCopy, 20 October 2014 - 22:32.


#5
lunyu

lunyu

    New Member

  • Grup: Members
  • Posts: 3
  • Înscris: 20.10.2014
Am facut doar doua ore de matrici , mai am o problema :
Scrieţi un program C/C++ care citeşte de la tastatură un număr natural nenul cu exact 4 cifre,
construieşte în memorie şi afişează apoi pe ecran o matrice având 4 linii şi 4 coloane, completată
astfel: elementele de pe prima coloană a matricei vor fi toate egale cu cifra unităţilor numărului dat,
elementele de pe a doua coloană a matricei vor fi toate egale cu cifra zecilor numărului dat, elementele
de pe a treia coloană a matricei vor fi toate egale cu cifra sutelor numărului dat, iar elementele de pe a
patra coloană a matricei vor fi toate egale cu cifra miilor numărului dat. Matricea va fi afişată pe ecran,
câte o linie a matricei pe câte o linie a ecranului, iar elementele fiecărei linii vor fi separate prin câte un
spaţiu.
Exemplu: dacă se citeşte numărul 1359, matricea construită va fi cea de mai jos.
9 5 3 1
9 5 3 1
9 5 3 1
9 5 3 1

Programul pe care l-am facut eu afiseaza numai pe prima coloana , cum fac sa afiseze si pe celelalte ?
#include <iostream>
using namespace std;
int main()
{
    int n,i,j,a[10][10],nr;
    cout<<"n=";
    cin>>n;
    cout<<"nr=";
    cin>>nr;
    for(i=0;i<n;i++)
    for(j=0;j<n;j++)
   {
   a[i][j]=nr%10;
   nr=nr/10;
    }
    for(i=1;i<=n;i++)
    {
    for(j=1;j<=n;j++)
    cout<<a[i][j]<<" ";
    cout<<endl;
    }
}

#6
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Ai voie cu o singura problema pe topic.

Vei citi si de acum inainte vei respecta regulamentul unificat al ariei Programming.

Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

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