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!
Răspunsuri la întrebare
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!