👤

Fişierul cuvant.in conţine pe prima linie un număr natural n, iar pe următoarele n linii
câte un cuvânt format din litere mici ale alfabetului englez. Să se afişeze pe prima linie a fişierului
cuvant.out, cel mai mare cuvant in ordine lexicografica.


Răspuns :

Răspuns:

#include<iostream>

#include<fstream>

#include<string.h>

using namespace std;

int main(){

   ifstream f("cuvant.in");

   char cuv[1000],cuvMax[1000];

   int n,i;

   f>>n>>cuv; strcpy(cuvMax,cuv);

   for(i=1;i<n;i++){

       f>>cuv;

       if(strcmp(cuv,cuvMax)==1)

           strcpy(cuvMax,cuv);

   }

   ofstream o("cuvant.out");

   o<<cuv;

   f.close();

   o.close();

}

Explicație:

Initializezi Maximul (adica cel mai mare cuvant in ordine lexicografica) cu primul cuvant din fisier. Daca urmatoarele cuvinte "sunt mai mari" ca cuvMax atunci cuvMax va fi egal cu acel cuvant. Compararea se face cu strcmp(a,b) care returneaza 1 daca a>b (o litera din a de pe pozitia i este mai mare decat o litera din b de pe pozitia i), returneaza 0 (orice litera din a de pe pozitia i este egala cu orice litera din b de pe pozitia i),returneaza -1 daca a<b (o litera din a de pe pozitia i este mai mica decat o litera din b de pe pozitia i).

Vă mulțumim că ați vizitat site-ul nostru web care acoperă despre Informatică. Sperăm că informațiile furnizate v-au fost utile. Nu ezitați să ne contactați dacă aveți întrebări sau aveți nevoie de asistență suplimentară. Ne vedem data viitoare și nu ratați să marcați.


Zone Alte intrebari