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

Un text are cel mult 100 de caractere și este format din cuvinte, numere naturale şi spaţii. Cuvintele sunt formate numai din litere mici ale alfabetului englez. Cuvintele şi numerele sunt separate prin câte un spaţiu, ca în exemplu.
Scrieţi un program C/C++ care citeşte de la tastatură un text de tipul menţionat mai sus şi afişează pe ecran numărul din text care începe cu cea mai mare cifră, ca în exemplu. Dacă există mai multe astfel de numere, se afișează doar unul dintre acestea, iar dacă textul nu conține niciun număr, se afișează pe ecran mesajul nu exista.
Exemplu: pentru textul
am 190 de nuci si 70 de castane
se afişează 70
am luat un for de la 1 la strlen (s) si am vrut sa fac un if strchr((nr*,s)!=0 l=s[i] dar mai departe cum fac..?
*nr este un sir format din 1 2 3 4 5 6 7 8 9


Miercuri2002: Poti sa oferi tot codul si numarul problemei?
boiustef: variabila prec folosită pentru verificare dacă precedentul caracter a fost cifră,,,

Răspunsuri la întrebare

Răspuns de boiustef
12

#include <iostream>

#include <cstring>

using namespace std;

char s[100], cifre[]="1234567890";

int n, i, prima, prmax, prec, num, cautat, exista, cif;

int main()

{

   cin.getline(s,100);

   n=strlen(s);

   for (i=0; i<n; ++i)

   {

       if (strchr(cifre,s[i]))

           {

               cif=s[i]-'0';

               if (prec==0) { prima=cif; prec=1; num=cif; exista=1; }

               else { num=num*10+cif; }

           }

       else

       {

           prec=0; if (prima>prmax) { prmax=prima; cautat=num; }

       }

   }

   if (exista) cout << cautat;

   else  cout <<"nu contine numere";

}

Alte întrebări interesante