1
« en: Martes 13 de Diciembre de 2011, 19:16 »
Tengo Este Programa Lo Hice En C++ Pero uso las librerias de c el problema esa q no puedo ordenar lo alfabeticamnte sino que me pide q imprima de mayro a menro por su densidad si alguin me ayuda seria genial es que hace rato q no lo puedo hacer!!!
Desde Ya Muchas Gracias!!!
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define vp 50
using namespace std;
struct pais
{
char nombre[20];
long poblacion;
long superficie;
};
void cP(pais paises[],int cantPaises,int LongMaxNom)
{
int i=0;
for(i=0; i<cantPaises; i++)
{
printf("<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>");
printf("\n\nIngrese Los Datos Del Pais Numero <%i>\n",i+1);
fflush(stdin);
printf("\nNombre: ");
fgets(paises.nombre,LongMaxNom,stdin);
fflush(stdin);
printf("\nPoblacion: ");
scanf("%d",&paises.poblacion);
printf("\nSuperficie: ");
scanf("%d",&paises.superficie);
printf("\n<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>\n\n");
}
}
void oP(pais paises[],int cantPaises)
{
int i,j;
pais aux;
for (i=0; i<cantPaises-1; i++)
{
for (j=i+1; j<cantPaises; j++)
{
if (strcmp(paises.nombre,paises[j].nombre)>0)
{
aux=paises;
paises=paises[j];
paises[j]=aux;
}
}
}
}
void mP(pais paises[],int cantPaises)
{
int i;
float l=0;
for (i=0; i<cantPaises; i++)
{
printf("\nNombre: %s",paises.nombre);
printf("Poblacion: %i",paises.poblacion);
printf("\nSuperficie: %i",paises.superficie);
l=(float)paises.poblacion/(float)paises.superficie;
printf("\nDensidad: %.2f\n",l);
}
}
int main()
{
int LongMaxNom=20;
int cantPaises;
do{
printf("Ingrese Las Cantidad De Pais: ");
scanf("%i",&cantPaises);
}while(cantPaises>vp);
pais paises[cantPaises];
cP(paises,cantPaises,LongMaxNom);
oP(paises,cantPaises);
mP(paises,cantPaises);
return 0;
}