Informatică, întrebare adresată de sebydadad, 8 ani în urmă

de ce nu iau 100 de pct pe sursa asta?

#include
using namespace std;
int main()
{
int n,ji,maxi ,mini,c,s;

cin>>n;

maxi=n;
mini=n;
s=0;
c=2;

while(c<=n)
{
cin>>ji;
if(ji>maxi)
maxi=ji;
if(ji {
mini=ji;
}
c=c+1;
}
s=maxi+mini;
cout<
}

Cerinţa
Se dau n numere naturale. Calculaţi suma dintre cel mai mare și cel mai mic număr dat.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii.

Date de ieşire
Programul afișează pe ecran numărul S, reprezentând suma dintre cel mai mare și cel mai mic număr dat.

Restricţii şi precizări
1 ≤ n ≤ 100
cele n numere citite vor avea cel mult 6 cifre


sebydadad: c=1 nu c=2

Răspunsuri la întrebare

Răspuns de rossetta
2
Greselile se afla aici :

maxi=n;
mini=n;

Incearca sa testezi codul tau pentru :
4
2 1 3 2
O sa afiseze 5 deoarece considera maximul 4 (gresit ) si minimul 1 (corect)

sau pentru :
4
12 10 33 21
O sa afiseze 37 deoarece considera maximul 33 ( corect) si minimul 4  (gresit)

Maximul trebuie initializat cu cea mai mica valoare posibila (in functie de datele de intrare). In cazul acestei probleme (vedem ca sunt numere naturale), maxi trebuie initializat cu 0. Minimul trebuie initializat cu cea mai mare valoare posibila (in functie datele de intrare). Cele
n numere citite vor avea cel mult 6 cifre. Mini trebuie sa ia valoarea 999999.
O alta varianta este sa citesti in afara structurii repetitive primul numar (variabila ji din programul tau ) si apoi sa initializezi maxi si mini cu aceasta valoare.

Mai jos iti prezint  o posibila rezolvare:

#include <iostream>
using namespace std;
int main() {
  int n, maxi = 0, mini = 999999, a;
  cin>>n;
  for(int i = 0; i < n; i++) {
    cin >> a;
    if(a > maxi)
      maxi = a;
    if(a < mini)
      mini = a;
  }
  cout << maxi + mini;
}


Alte întrebări interesante