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

Se citește un șir de caractere de maxim 150, litere mici ale alfabetului englez și spații.

Se cere: h) Să se determine de câte ori apare ultimul cuvânt în șir

Daca am "masa paine lapte paine lapte" trebuie sa afiseze 2, pentru ca lapte apare de 2 ori si este ultimul cuvant din sir.

Răspunsuri la întrebare

Răspuns de andrei750238
1

#include <iostream>

#include <cstring>

using namespace std;

int main(){

   char txt[150], cuv[15][10];

   cin.get(txt,150);

   //Imparte textul in cuvinte

   char *p=strtok(txt," ");

   int i=0;

   while(p != NULL){

       strcpy(cuv[i++],p);

       p=strtok(NULL," ");

   }

   //Verifica cate cuvinte sunt identice cu ultimul cuvant

   i--;

   int nr=1;

   for(int j=0;j<i;j++){

       if(strcmp(cuv[i],cuv[j])==0) nr++;

   }

   //Afisare rezultat

   cout << nr;

}


breodrgaming: Iti multumesc mult!
breodrgaming: stai, dar de fiecare data cand ii dau rulare afiseaza doar 1
indiferent cate cuvinte sunt la fel cu ultimul
andrei750238: Verifica daca ai scris bine programul.
Programul face diferenta intre literele mari si literele mici. ("lapte" este diferit de "Lapte" ).

Am testat pe exemplul dat, pentru "masa paine lapte paine lapte" se afiseaza 2
breodrgaming: eu am dat copy paste la ce ai scris tu
iar eu nu scriu nimic cu litera mare, totul e cu litera mica
andrei750238: https://imgur.com/a/dLh9UQi

Te asigur ca programul merge exact asa cum ar trebui sa mearga, asa cum poti vedea in link-ul de mai sus.
breodrgaming: uite aici ce imi da mie

https://imgur.com/a/A6Ly892
andrei750238: Incearca sa rulezi programul pe http://cpp.sh/
andrei750238: Code::Blocks mai face probleme destul de ciudate uneori.
breodrgaming: ai dreptate, aici functioneaza. nu inteleg de ce nu merge pe codeblocks..
atunci iti multumesc mult pentru explicatie!
andrei750238: Cu placere !
Alte întrebări interesante