[C con Clase] Duda con estructuras
Oscar
pelucheloko en hotmail.com
Dom Jul 15 20:32:13 CEST 2012
Gracias Álvaro por tu ayuda, efectivamente era eso
Un saludo
From: Álvaro Gómez Uría
Sent: Sunday, July 15, 2012 7:46 PM
To: Lista de correo sobre C y C++
Subject: Re: [C con Clase] Duda con estructuras
Hola Oscar,
creo que encontré el problema, y es que no encerras todas las sentencias del ultimo FOR con una llave. O sea, tendrias que ponerlo así:
for(n=0; n<=5; n++)
{
if (lista[n].puntos > mayorp)
{
mayorp = lista[n].puntos;
strcpy(mayorj, lista[n].nombre);
}
if (lista[n].puntos < menorp)
{
menorp = lista[n].puntos;
strcpy(menorj, lista[n].nombre);
}
}
cout << "El jugador con mas puntos es : " << mayorj << endl;
cout << "El jugador con menor puntos es : " << menorj << endl;
}
Porque si mal no me parece, al no poner las llaves, solo entra al primer if.
Espero que eso te ayude.
Saludos
El 15 de julio de 2012 17:27, Oscar <pelucheloko en hotmail.com> escribió:
Hola que tal
Tengo dos códigos fuentes de dos programas, uno de ellos (el primero que posteo) es el original hecho por el autor en C, el segundo es mío y hecho en C++.
El mío no funciona correctamente, el programa pide 6 nombres de jugadores y 6 puntuaciones, el programa al final muestra el nombre del jugador con más puntos y el que menos.
El del autor funciona ok, pero a mí me da el valor del jugador con menos puntos incorrecto ¿por qué? No alcanzo a ver por mi mismo la diferencia.
Muchas gracias y un saludo.
Código original del autor:
#include <stdio.h>
#include <string.h>
/* Definimos la estructura del array. */
struct registro {
char jugador[50];
int puntos;
};
int main (void)
{
struct registro lista[6];
int i;
int max_puntos;
int min_puntos;
char max_jugador[50];
char min_jugador[50];
/* Rellenamos la lista de seis jugadores. */
/* Pedimos al usuario el nombre y la puntuacion de
seis jugadores y los almacenamos en el array. */
for (i=0; i<=5; i++)
{
printf("\nEscriba el nombre del jugador %d: ", i+1);
gets(lista[i].jugador);
printf("Escriba su puntuacion de: ");
scanf("%d", &lista[i].puntos);
fflush(stdin);
}
/* Mostramos el nombre del jugador con mas
puntos y el nombre del jugador con menos. */
/* Tomamos la puntuacion del primer jugador de la
lista, y su nombre, como la maxima y la minima. */
max_puntos=lista[0].puntos;
strcpy(max_jugador, lista[0].jugador);
min_puntos=lista[0].puntos;
strcpy(min_jugador, lista[0].jugador);
for (i=1; i<=5; i++)
{
/* Comprobamos si el jugador actual
tiene el maximo de puntos. */
if (lista[i].puntos>max_puntos)
{
max_puntos=lista[i].puntos;
strcpy(max_jugador, lista[i].jugador);
}
/* Comprobamos si el jugador actual
tiene el minimo de puntos. */
if (lista[i].puntos<min_puntos)
{
min_puntos=lista[i].puntos;
strcpy(min_jugador, lista[i].jugador);
}
}
/* Mostramos el nombre del jugador con mas puntos
y el nombre del jugador con menos puntos. */
printf("\nJugador con mas puntos: %s", max_jugador);
printf("\nJugador con menos puntos: %s", min_jugador);
/* Hacemos una pausa hasta que el usuario pulse Intro */
fflush(stdin);
printf("\n\nPulse Intro para finalizar...");
getchar();
}
************* Mi código : ****************
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
struct Tjugadores {
char nombre[100];
int puntos;
};
int main()
{
struct Tjugadores lista[6];
char mayorj[100];
char menorj[100];
int mayorp;
int menorp;
int n;
for (n=0; n<=5; n++)
{
cout << "Ponga el nombre del jugador : ";
cin >> lista[n].nombre;
cout << "Nota de " << lista[n].nombre << " : ";
cin >> lista[n].puntos;
}
mayorp = lista[0].puntos;
menorp = lista[0].puntos;
strcpy (mayorj, lista[0].nombre);
strcpy (menorj, lista[0].nombre);
for(n=0; n<=5; n++)
if (lista[n].puntos > mayorp)
{
mayorp = lista[n].puntos;
strcpy(mayorj, lista[n].nombre);
}
if (lista[n].puntos < menorp)
{
menorp = lista[n].puntos;
strcpy(menorj, lista[n].nombre);
}
cout << "El jugador con mas puntos es : " << mayorj << endl;
cout << "El jugador con menor puntos es : " << menorj << endl;
}
Un saludo y gracias
Oscar
Administrador de sistemas.
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
--------------------------------------------------------------------------------
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20120715/829aa925/attachment.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: wlEmoticon-smile[1].png
Type: image/png
Size: 1041 bytes
Desc: no disponible
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20120715/829aa925/attachment.png>
Más información sobre la lista de distribución Cconclase