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

URGENT PENTRU BAC <
Un cuvânt este prefix al unui alt cuvânt dacă se obține din acesta, prin eliminarea ultimelor sale litere.
Scrieți un program C/C++ care citește de la tastatură un număr natural n (n[2,20]) și apoi n cuvinte
distincte, fiecare fiind format din cel mult 20 de caractere, numai litere mici ale alfabetului englez

La introducerea datelor, după fiecare cuvânt se tastează Enter. Programul afișează pe
ecran, separate prin câte un spațiu, cuvintele care îl au drept prefix pe ultimul cuvânt citit.
Dacă nu există astfel de cuvinte, se afișează pe ecran mesajul nu exista.
Exemplu: dacă n=6 și se citesc cuvintele alăturate, pe ecran se afișează
raita raid raion

raita
grai
raid
raion
straie
rai

Răspunsuri la întrebare

Răspuns de andrei750238
6

#include <iostream>

#include <cstring>

using namespace std;

int main(){

   int n,i;

   char cuv[20][20];

   bool exista=0;

   //Citire date

   cin >> n;

   for(i=0;i<n;i++) cin >> cuv[i];

   //Afisare cuvinte care sunt prefixe

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

       if(strstr(cuv[i],cuv[n-1])==cuv[i]){

           cout << cuv[i] << " ";

           exista=1;

       }

   }

   if(!exista) cout << "nu exista";

}


charlie41641: dar ce face bool?
andrei750238: Retine o variabila de tip logic (care poate sa aiba valoarea adevarat = 1 sau fals = 0).
andrei750238: Poti folosi in locul lui o variabila de tip int, dar bool ar fi recomandat in situatia de fata
ciobanutudorvlad2002: vezi ca nu ti merge programul bosule
andrei750238: Programul e testat pe exemplul dat si functioneaza perfect.
Alte întrebări interesante