Cerinţa
Să se scrie un program care citește mai multe cuvinte și determină despre fiecare dacă este palindrom.
Date de intrare
Fișierul de intrare palindrom.in conține pe prima linie un număr natural n, iar pe următoarele n linii câte un cuvânt alcătuit din litere mici ale alfabetului englez.
Date de ieşire
Fișierul de ieșire palindrom.out va conține n linii. Linia i va conține valoarea 1 dacă pe linia i+1 din fișierul de intrare se află un palindrom, și 0 în caz contrar.
Restricţii şi precizări
0
fiecare cuvânt va conține cel mult 20 de caractere
Răspunsuri la întrebare
Răspuns de
6
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("palindrom.in");
ofstream fout("palindrom.out");
int main()
{
int n,i,m,j,h;
bool ok;
char v[100];
fin>>n;
fin.get();
for(i=0;i<n;i++) {
fin.getline(v,100);
m = strlen(v);
ok=1;
j=0; h=m-1;
while(j<m && h>=0) {
if(v[j]!=v[h]) ok=0;
j++; h--;
}
if(ok==1) fout<<"1";
else fout<<"0";
fout<<endl;
}
return 0;
}
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("palindrom.in");
ofstream fout("palindrom.out");
int main()
{
int n,i,m,j,h;
bool ok;
char v[100];
fin>>n;
fin.get();
for(i=0;i<n;i++) {
fin.getline(v,100);
m = strlen(v);
ok=1;
j=0; h=m-1;
while(j<m && h>=0) {
if(v[j]!=v[h]) ok=0;
j++; h--;
}
if(ok==1) fout<<"1";
else fout<<"0";
fout<<endl;
}
return 0;
}
Răspuns de
8
Problema se face foarte simplu folosind functia strrev(s) - inverseaza literele intr0un cuvant. Din pacate aceasta functie nu functioneaza pe pbinfo. Iti ofer sursa mea la problema Palindrom. Succes!
#include <fstream>
#include <cstring>
#include <cstdlib>
#include <algorithm>
using namespace std;
char s[100],t[100],c;
int n,i,j,r,l;
int main()
{
ifstream f("palindrom.in");
ofstream g("palindrom.out");
f>>n;
for(i=1;i<=n;i++)
{
f>>s;
strcpy(t,s);
// strrev(s);
l=strlen(s);
for(j=0;j<=(l-1)/2;j++)
{
c=s[j];
s[j]=s[l-1-j];
s[l-1-j]=c;
}
r=strcmp(t,s);
if(r==0) g<<1<<"\n";
else g<<0<<"\n";
}
f.close();
g.close();
return 0;
}
#include <fstream>
#include <cstring>
#include <cstdlib>
#include <algorithm>
using namespace std;
char s[100],t[100],c;
int n,i,j,r,l;
int main()
{
ifstream f("palindrom.in");
ofstream g("palindrom.out");
f>>n;
for(i=1;i<=n;i++)
{
f>>s;
strcpy(t,s);
// strrev(s);
l=strlen(s);
for(j=0;j<=(l-1)/2;j++)
{
c=s[j];
s[j]=s[l-1-j];
s[l-1-j]=c;
}
r=strcmp(t,s);
if(r==0) g<<1<<"\n";
else g<<0<<"\n";
}
f.close();
g.close();
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă