Răspuns :
Răspuns:
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
ifstream fin("listacuv.in");
ofstream fout("listacuv.out");
int n, i, len;
char cuv[22];
struct nod
{
char info[22];
nod *urm;
};
nod *cap=NULL;
void afisare(nod *cap)
{
if (cap==NULL)
fout << "LISTA E VIDA...";
else
{
nod *p=cap;
while (p != NULL)
{
fout << p->info << " ";
p = p->urm;
}
fout << "\n";
}
}
void adauga(char cuv[], nod *&cap)
{
nod *p=new nod;
strcpy(p->info,cuv);
if (cap==NULL)
{
p->urm=NULL;
cap=p;
}
else
{
p->urm=cap;
cap=p;
}
}
int main()
{
fin >> n;
for (i=1; i<=n; ++i)
{
fin >> cuv;
len=strlen(cuv);
if (cuv[0]==cuv[len-1])
adauga(cuv,cap);
}
afisare(cap);
}
Explicație:
am folosit fişiere (e mult mai comod la testările codului,,, nu introduci de la consolă de fiecare dată. Dacă insişti fără fişiere, atunci le ştergi pe ele şi biblioteca fstream, iar în cod inloc de fin şi fout scrii cin şi cout
La citirea cuvintelor verificam dacă respectă cerinţa şi adăugam elementul la capul listei. astfel cuvintele se memorează în listă în ordinea inversă citirii lor
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.