20.8 Escriba un programa para insertar 25 enteros aleatorios de 0 a 100 en orden, en un objeto lista enlazada. El programa
deberá calcular la suma de los elementos y el promedio de punto f lotante de los elementos.
/* * C++ Suma y promedio de una lista simple * */ #include <iostream> #include <cstdlib> using namespace std; struct nodo{ int nro; // en este caso es un numero entero struct nodo *sgte; }; typedef struct nodo *Tlista,*Tlista2; Tlista inicio, fin; Tlista2 inicio2,fin2; void generarLista( Tlista &inicio, Tlista &fin, int n ) { Tlista q, t; Tlista r, s; for(int i=0; i<n; i++) { q = new(struct nodo); q->nro = rand()%100; r = new(struct nodo); r->nro = q->nro; if(inicio==NULL) { q->sgte = inicio; inicio = q; fin = q; } else { q->sgte = fin->sgte; fin->sgte = q; fin = q; } } cout<<"\n\n\tLista de numeros generados... "<<endl; } void reportarLista(Tlista inicio) { while(inicio != NULL) { cout << inicio->nro<<" " ; inicio = inicio->sgte; } } void ordenarLista(Tlista lista) { Tlista actual , siguiente; int t; actual = lista; while(actual->sgte != NULL) { siguiente = actual->sgte; while(siguiente!=NULL) { if(actual->nro > siguiente->nro) { t = siguiente->nro; siguiente->nro = actual->nro; actual->nro = t; } siguiente = siguiente->sgte; } actual = actual->sgte; siguiente = actual->sgte; } } int suma( Tlista inicio ) { int suma = 0; while( inicio ) { suma = suma + inicio->nro; inicio = inicio->sgte; } return suma; } /* Funcion Principal ------------------------------------------------------------------*/ int main() { inicio = NULL; fin = NULL; float sumar; system("color 0b"); generarLista( inicio, fin, 25 ); ordenarLista( inicio ); cout<<"\n\n LISTA:\n\n"; reportarLista( inicio ); sumar = suma( inicio ); cout<<"\n\nsuma= "<<sumar<<" promedio= "<<sumar/25<<"\n\n\n"; system("pause"); return 0; }
No hay comentarios.:
Publicar un comentario