Informatică, întrebare adresată de andreearamonaiovu, 9 ani în urmă

Cerinţa
Se dau n numere naturale. Determinați numărul pentru care prima cifră este maximă.

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 cerut M.

Restricţii şi precizări
1 ≤ n ≤ 1000
cele n numere citite vor avea cel mult 9 cifre
dacă există mai multe numere pentru care prima cifră este maximă, se va determina cel mai mare dintre acestea



Exemplu
Date de intrare

5
2467 645 687 59878 125
Date de ieșire

687
Explicație
Există două numere pentru care prima cifră este maximă. Dintre acestea, cel mai mare este 687.
C++ va rog ...prb 364 pbinfo

Răspunsuri la întrebare

Răspuns de Razzvy
2
#include <iostream>
using namespace std;

int main()
{
   int n, x, y, max = -1, m;

   cin>>n;
   while(n)
   {
      cin>>x;
      y = x;
      while(y > 9)
         y /= 10;
      if(y > max)
      {
         max = y;
         m = x;
      }
      else if(y == max && x > m)
         m = x;
      n--;
   }
   cout<<m;
}

andreearamonaiovu: mss 100p
Răspuns de express
1
#include <iostream>
#define INF 2147000000
using namespace std;
int n,k,x,i,maxx=-INF,mc=0;
int main()
{
    cin>>n;
    for(i=1;i<=n;i++)
     {
         cin>>x;
         k=x;
         while(x/10)
          x=x/10;
         if(x>mc) {mc=x; if(maxx>k) maxx=k;}
          else if(x==mc)
                if(k>maxx) maxx=k;
     }
    cout<<maxx;
    return 0;
}


Razzvy: acolo unde e if(x > mc), nu cred ca mai trebuia sa pui acel: if(maxx > k)
express: asa e...nu mai era nevoie...
Alte întrebări interesante