Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Huawei Pura 70/Pro/Ultra

Chiar se platesc pensiile la term...

cu autorulota prin BZ

Cuptor Electrolux EOE7C31Z, cum i...
 Cablu Corsair 600W GPU

Solicitare documente emag

Uzucapiune teren intravilan

Recomandare aparat foto
 Ariston "Genus One+" 24kw...

Saci moloz - unde ii pot arunca?

Problema respingere memorie supli...

Posibila virusare
 Material opac developat filme

Caramida de sticla la exterior

Geam cuptor crapat

Un canal de AI de comedie pe YT
 

simplificare problema subprograme

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

#1
ematex

ematex

    Junior Member

  • Grup: Members
  • Posts: 41
  • Înscris: 24.08.2007
Am studiat urmatoarea problema in C++:
Se citeste un tablou cu n linii si n coloane, numere intregi.Se cere suma elementelor aflate deasupra diagonalei principale. Programul se va realiza astfel:
-sa se scrie un subprogram de citire a unei matrice cu n linii si n coloane
-sa se scrie un subprogram de tiparire a unei matrice cu n linii si n coloane
-sa se scrie un subprogram care aduna elementele aflate deasupra diagonalei principale.
Functia main() rezulta din apelul acestor subprograme.

#include<iostream>
#include<iomanip>
using namespace std;
void citire(int a[][20],int &n)
{int i,j;
cout<<"n=";cin>>n;
for (i=1;i<=n;i++)
  for (j=1;j<=n;j++)
  {cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];}
}
void afisare(int a[][20],int n)
{int i,j;
for (i=1;i<=n;i++)
{for (j=1;j<=n;j++)
  cout<<setw(3)<<a[i][j];
  cout<<endl;
}
}
int suma_diagonala(int a[][20],int n)
{int s=0,i,j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
  if (i+j<n+1)
  s=s+a[i][j];
return s;
}
int main()
{int a[20][20],n;
cout<<"a)Citire:"<<endl;
citire(a,n);
cout<<"b)Afisare:"<<endl;
afisare(a,n);
cout<<"c)Suma:"<<endl;
cout<<suma_diagonala(a,n);
}

Eu folosesc CodeBlocks programul compileaza fara erori dar as vrea totusi sa stiu cum s-ar putea scrie mai simplificat adica fara #include<iomanip>, setw(3). Eu sunt incepator nu am folosit aceste instructiuni pana acum.
Multumesc.

#2
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,252
  • Înscris: 24.02.2007
1) Indicii in C/C++ incep de la 0, nu de la 1
2) setw are treaba cu formatarea atunci cand afisezi ceva. Vezi ce face mai exact si elimina-l daca vrei ca nu te ajuta prea mult.

Apoi, la o problema asa scurta, nu prea mai ai ce altceva sa simplifici.

#3
adrian93

adrian93

    Active Member

  • Grup: Members
  • Posts: 1,740
  • Înscris: 29.10.2009
Nu ar trebui ca acel setw să te deranjeze prea tare, având în vedere că nu îți afectează cu nimic logica programului. Te ajută la afișare, să vezi matricea aliniată mai frumos.

http://www.c4learn.c...ng-field-width/

Edited by adrian93, 20 April 2014 - 11:32.


Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

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