Código
/* Se tiene una lista en la que se han introducido pedidos según el orden de llegada, por lo que puede haber pedidos del mismo artículo. Se pide escribir un programa que llene la lista como la anteriormente descrita y, dada esa lista, llamar a una función devuelva un único elemento por cada artículo, en el cual el campo Cant_Pedidatenga la suma detodas las cantidades pedidas de ese artículo. No se pueden utilizar estructuras auxiliares La función'boolPalindrome(ptNODO frase) */ #include <cstdlib.h> #include <iostream.h> #include<conio.h> struct datos { char frase[50]; }; typedef datos DATO; struct NODO { DATO Info; NODO *sig, *ant; }; typedef NODO* ptNODO; ptNODO CrearNodo(DATO X) { ptNODO NUEVO; NUEVO = new NODO; NUEVO->Info = X; NUEVO->sig = NULL; NUEVO->ant = NULL; return NUEVO; } ptNODO Inicializar(ptNODO &inicio, ptNODO &fin, DATO X) { ptNODO NUEVO; NUEVO = CrearNodo(X); inicio = NUEVO; fin = NUEVO; } void main (void) { ptNODO inicio=NULL,fin, NUEVO; DATO X; int op,n=0; int i, j, cond=1; cout<<"Introduzca la frase: "; cin.getline(X.frase,50); if (inicio==NULL) Inicializar(inicio, fin,X); else { NUEVO=CrearNodo(X); fin->sig=NUEVO; fin = NUEVO; } for (i=0; i<strlen(X.frase)-1; i++) { if (X.frase[i] == ' ') { for (j=i; j<strlen(X.frase)-1; j++) { X.frase[j]=X.frase[j+1]; } X.frase[strlen(X.frase)-1]='\0'; } } cout<<"La frase sin espacios es:"<<X.frase; //comprobar si es palindromo for (i=0; i<strlen(X.frase)/2 && cond==1; i++) { if (X.frase[i] != X.frase[strlen(X.frase)-i-1]) { cond=0; } } if (cond == 1) { cout<<"\nEs palindromo.\n"; } else { cout<<"\nNo es palindromo.\n"; } cout<< "Press the enter key to continue ..."; getch(); }
Mod: Obligatorio el uso de etiquetas GeSHi. Los temas sobre programación van a sus respectivos subforos.