C/Visual C - Resultado diferente en borland c++

   
Vista:

Resultado diferente en borland c++

Publicado por Juliet (2 intervenciones) el 20/06/2010 01:15:21
Hola a todos pues tengo un problema con el Borland c++ y es que estoy haciendo y pequeño programa y bueno al final cuando ejecuto hay un resultado que no me muestra bien que es el de las NOTAS y OJO este programa ya lo ejecute en el Dev C++ y si me muestra el resultado bien y se que el programa lo tengo bien pero no entiendo porque en el borland no? :S y no le he hecho nada al compilador lo probe en otra compu con el borland y tambien me muestra las NOTAS mal bueno la primera si esta bien pero las otras no, en el Dev c++ si sale llas NOTAS bien entonces nose que me dicen ustedes que puede ser? alguien que utilize el Borland C++ que me diga a ver cual puede ser el problema?? les voy a colocar el programa:

#include <stdio.h>
#include <conio.h>

#define ALUM 3
#define PRUEB 5

main()
{
int res_correc[PRUEB]={2,1,1,2,1},val_pto[PRUEB]={10,10,15,10,15};
int res_alum[ALUM],nota[ALUM];
int i,j,sum=0,cont1=0,cont2=0,nota_ap=0,nota_rep=0,aprob=0,reprob=0;
float prom_ap,prom_rep,porc_ap,porc_rep,sum_prom;

for (i=0; i < ALUM; i++)
{
cont1=cont1 + 1;
printf("\tAlumno %d\n\n",cont1);

for (j=0; j < PRUEB; j++)
{
cont2=cont2 + 1;
printf("- Respuesta (%d): ",cont2); scanf("%d",&res_alum[j]);

if (res_correc[j] == res_alum[j])
sum= sum + val_pto[j];
}
nota[i]=sum;
sum=0;
cont2=0;

if (nota[i] >= 30) //CANTIDAD DE APROBADOS Y REPROBADOS
{
aprob=aprob + 1;
nota_ap= nota_ap + nota[i]; //PROMEDIO APROBADOS Y REPROBADOS part1
}
else
{
reprob=reprob + 1;
nota_rep= nota_rep + nota[i];
}

printf("\n\n");
}

if (aprob >= 1) // PROMEDIO APROBADOS Y REPROBADOS part2
prom_ap= nota_ap / aprob;

if (reprob >= 1)
prom_rep= nota_rep / reprob;

printf("\n\n NOTAS:");

for (i=0; i < ALUM; i++)
{
printf("\n %d",nota[i]);
sum= sum + nota[i]; //PROMEDIO DE LA SECCION
}
sum_prom= sum / ALUM;

if (aprob >= 1) //PORCENTAJE DE APROBADOS Y REPROB
porc_ap= ((aprob / ALUM)* 100);

if (reprob >= 1)
porc_rep= ((reprob / ALUM)* 100);

printf("\n\n1)- Promedio de la seccion: %.2f",sum_prom);
printf("\n2)- Cantidad de aprobados: %d",aprob);
printf("\n3)- Cantidad de reprobados: %d",reprob);
printf("\n4)- Promedio de notas de los aprobados: %.2f",prom_ap);
printf("\n5)- Promedio de notas de los reprobados: %.2f",prom_rep);
printf("\n6)- Aprobados: %.0f %",porc_ap);
printf("\n7)- Reprobados: %.0f %",porc_rep);

getch();
}

**************************************************************************************************
Colocando unos datos extras tengo el Borland C++ version 5.02, sistema operativo windows 7.
Espero realmente que me puedan ayudar se los agradeceria muucho! =)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Resultado diferente en borland c++

Publicado por J (1 intervención) el 01/07/2010 22:14:39
Tu problema es Borland, jaja. Mirá, no sé decirte precisamente pero, a mi me pasó algo parecido.

Mi profesor Usa siempre el turboC 1.01(es de borland), bueno, para un parcial nos dio una base de datos (hecha con el turboc 1.01). Yo hize un programa de lectura, Bien Hecho, Y leía cualquier archivo menos esa base de datos(compilándolo en devcpp), lo mismo si compilaba este programa de lectura en visual studio.
Mi programa de lectura sólo y SOLO pudo leer bien esa base de datos compilándolo en el turbo 1.01

No sé que problema tendrán los compiladores borland, o no sé que harán de diferente, pero me dieron terribles dolores de cabeza

Y encima, te dan malas costumbres (como usar conio.h o no especificar namespaces en c++)

Si te anda en el dev, quedate tranquila que está bien
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Resultado diferente en borland c++

Publicado por TurboDebugger (1 intervención) el 17/07/2010 15:06:41
Hola

Yo también soy usuario nostalgico de borland c++ y tambien bajo windows 7 (bravo por borland, que despues de 15 años sigue funcionando en un nuevo sistema operativo).

Respecto a la respuesta de J, ni mucho menos es un mal compilador, más bien lo contrario. El problema de tu programa no es Borland o Dev sino el codigo fuente. Donde escribes:

int res_alum[ALUM],nota[ALUM];

deberías poner:

int res_alum[PRUEB],nota[ALUM];

Simplemente es un error de desbordamiento, y como tal produce resultados aleatorios.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar