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

Salut!
Ma poate cineva ajuta cu elaborarea unui program in limbajul C?
Se cere :
Sunt date două propoziţii. Găsiţi cel mai scurt cuvînt din prima propoziţie care nu este în a doua propoziţie.
Mersi anticipat!


boiustef: frumoasa problema... dar in C nu pot... daca era c++ se putea incerca... :))) succese!
brentimusps: Daca poti, arata-mi si in C++ sa am un exemplu, pentru ca ma chinui deja de cateva zile si tot nu pot elabora acest program ((
boiustef: uauuu, eu am uitat de problema asta ... acum ma ocup de ea....
brentimusps: Mersi mult, numai daca ai timp si dorinta xD
boiustef: cred, tr. de creat un vector din cuvintele primei propozitii, de ordonat dupa lungime, in crestere si de inceput verificarea de apartenenta in a doua propozitie....
brentimusps: m-am gandit si eu asa ,dar nu pot elabora programul (

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

#include <cstring>

#include <fstream>

using namespace std;

ifstream f("texte.in");

char p1[200],p2[300],vcuv[100][100], *p;

int i, k;

void ordonare() //ordoneaza cuvintele

{

   int sw,i;

   char aux[100];

   do

   {

       sw=1;

       for(i=0;i<k-1;i++)

       if (strlen(vcuv[i])>strlen(vcuv[i+1]))

       {

           strcpy(aux,vcuv[i]);

           strcpy(vcuv[i],vcuv[i+1]);

           strcpy(vcuv[i+1],aux);

           sw=0;

       }

   }

   while(!sw);

}

void afisare() //afiseaza cuvintele

{

   int i;

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

       cout<<vcuv[i]<< " ";

   cout << endl;

}

int main()

{

   f.getline(p1,200);

   f.getline(p2,300);

   p=strtok(p1," ");

   while (p)

   {

       strcpy(vcuv[k++],p);

       p=strtok(NULL," ");

   }

   ordonare();

   afisare();

   int gasit=0; i=0;

   while (!gasit && i<k)

   {

       p=strstr(p2,vcuv[i]);

       if (p==0)

       {

           gasit=1;

           cout << vcuv[i];

           break;

       }

       ++i;

   }

   if (gasit==0)

       cout << "nu s-a gasit";

   return 0;

}

Explicație:

chiar daca apar cuvinte de aceeasi lungime, in vector este pastrata ordinea de aparitie a cuvintelor.

am folosit fisier sa nu introduc propozitiile la fiecare executie a programului.

am folosit si subprogramul afisare a cuvintelor sa vad ca totul e ok

Alegi ce-ti trebuie...   Succese la cercetare!


brentimusps: Multumesc mult mult!!!\
Alte întrebări interesante