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