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 |
[TEMA] Sa se afiseze numărul liniei din matrice care are cea mai mare suma a elementelor
Ultima postare: mai 09 2019 09:15, Inițiat de
MateiGafita
, mai 08 2019 23:50
·
0
#1
Publicat: 08 mai 2019 - 23:50
Bună! Sunt nou pe acest forum, dar as vrea sa ma ajutați la aceasta problema de informatica de clasa a 10. Se citește o matrice de la tastatură de dimensiuni n*m. Sa se afiseze numărul liniei din matrice care are cea mai mare suma a elementelor.
Ce am rezolvat pana acum : #include <iostream> using namespace std; int a[10][10],n,i,j,Max,l ,S,S1; int main() { cout<<"n= ";cin >>n; for (i = 1; i <=n; i++) for (j = 1; j <=n; j++) {cout <<"a["<<i<<"]["<<j<<"]= ";cin>>a[i][j];} for(i=1;i<=n;i++) {for(j=1;j<=n;j++) cout<<a[i][j]<<" ";cout << endl;} cout<<endl ; //afiseaza matricea in forma ei// for (j=1;j<=n; j++) S=S+a[1][j]; Max=S; l=1;//linia for (i=2;i<=n; i++) {S1=0; for (j=1;j<=n;j++) S1=S1+a[i][j]; if (S1>Max) Max=S1; } cout<<Max;cout<<endl; cout<<l; return 0; } |
#3
Publicat: 09 mai 2019 - 04:25
Invata sa formatezi codul. Pune { si } pe o singura linie dedicata, si aliniaza / indenteaza blocurile folosind spatii sau tasta tab.
Codul tau reformatat ar arata asa, mai usor de citit si urmarit: #include <iostream> using namespace std; int a[10][10], n, i, j, Max, l, S, S1; int main() { cout << "n= "; cin >> n; for (i = 1; i <= n; i++) for (j = 1; j <= n; j++) { cout << "a[" << i << "][" << j << "]= "; cin >> a[i][j]; } for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) cout << a[i][j] << " "; cout << endl; } cout << endl; //afiseaza matricea in forma ei// for (j = 1; j <= n; j++) S = S + a[1][j]; Max = S; l = 1; //linia for (i = 2; i <= n; i++) { S1 = 0; for (j = 1; j <= n; j++) S1 = S1 + a[i][j]; if (S1 > Max) Max = S1; } cout << Max; cout << endl; cout << l; return 0; } Iar pentru problema ai scris prea mult cod. Poti calcula suma pentru fiecare linie pe masura ce citesti, si compara cu suma precedenta. Ai nevoie doar de variabilele: current_sum; max_sum; max_row_number; current_row; Pe current_sum o initializezi cu 0 la inceputul unei linii. Pe max_sum o initializezi cu std::numeric_limits<int>::min() la inceputul programului pe max_row_number o initializezi cu -1 la inceputul programului si o updatezi cu valoarea lui current_row cand gasesti un nou maxim (cand current_sum > max_sum). Nu tu matrice, nu tu bucle peste bucle, ci doar buclele de citire. Pseudocod: 1 #!/usr/bin/env python 2 3 n = int(input("n=")) 4 5 print(n) 6 7 max_sum = float("-inf") 8 max_row_number = -1 9 10 for current_row in range(n): 11 current_sum = 0 12 for current_column in range(n): 13 current_sum += int(input("value:")) 14 if current_sum > max_sum: 15 max_sum = current_sum 16 max_row_number = current_row 17 18 print("Max sum", max_sum, "on row", max_row_number) |
Anunturi
▶ Utilizatori activi: 1
0 membri, 1 vizitatori, 0 utilizatori anonimi