Informatică, întrebare adresată de elleelee, 9 ani în urmă

Se introduc de la tastatura doua cuvinte. Sa se afiseze sufixul comun de lungime maxima. Sau mesajul “Nu exista” daca cele doua cuvinte nu au suffix comun. Ex: DI: Mariana, Elena => DE: na, Ex2: DI: carte, miros => DE: Nu exista (se folosesc pointeri care indica sfarsitul sirului si scad simultan. )
#include
#include
#include

using namespace std;

int main()
{ char s[20], v[21], suf[10], *p;
int i,j;
cout<< "s=";cin.get(s,20);
cin.get();
cout<< "v=";cin.get(v,21);
cin.get();
strrev(s);
strrev(v);
for(i=strlen(s);i<0;i--)
for(j=strlen(v);j<0;j--){
if(strcmp(s-i,v-j)==0)
p=strcpy(suf,s-i);
}
if(p)
cout<

else
cout<< " nu exista";
return 0;
}
ce este gresit??


JolieJulie: ce urmeaza aici? : if(p)
cout<
elleelee: cout<<p<<endl;***
JolieJulie: de ce sunt 3 #include ?
JolieJulie: eu am rezolvat altcumva...incerc doar sa vad de ce nu merge la tine....
elleelee: #include <iostream>
#include <string.h>
#include <math.h>**
elleelee: pai imi poti da rezolvarea pe care ai facut o tu?..poate ma ajuta
JolieJulie: da

Răspunsuri la întrebare

Răspuns de JolieJulie
1
#include<iostream>
#include<string.h>
#include<math.h>
using namespace std;
int main()
{ char s[20],v[21],suf[10];
int i,j=0;
cout<<"s=";
cin.getline(s,20);
cout<<"v=";cin.getline(v,21);
strrev(s);
strrev(v);
for(i=0;s[i] && v[i] && s[i]==v[i];i++)
     {
     suf[j]=s[i];
     j++;
     suf[j]='\0';}
strrev(suf);
cout<<"sufixul:"<<suf;
}


Anexe:
Răspuns de rossetta
0
// complexitate timp O(a + b)

#include <iostream>
using namespace std;

int main() {
  string a, b;
  cin >> a >> b;
  int i = a.length() - 1;
  int j = b.length() - 1;
  int l = 0;
  while (0 <= i && 0 <= j && a[i] == b[j]) {
    i--;
    j--;
    l++;
  }
  if(l > 0)
    cout << l;
  else
   cout <<"Nu exista";
  return 0;
}


Alte întrebări interesante