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ăspunsuri la întrebare
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).