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 pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!