Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

No respeta la condicion ELSE en lenguaje C

JORGE BA-K

Bovino de la familia
Desde
20 Oct 2008
Mensajes
4.072
Hola amigos miren que mi programa al ingresar un nombre q no esta en la condicion if debe salir decir q no esta en el sistema y ya se cierra pero nopasa eso chequenlo porfa


//*Preguntar el nombre del alumno, el alumno debe estar en el sistema de lo contrario indicarle que no pertenece a este. Si pertenece introducir su
//calificacion, si es aprobatoria o reprobatora*//

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


char nombre[0];
float calificacion;

main()
{
system("color 9c");//Color de letra y fondo//

printf(" \n\n VERIFICADOR DE PASE DE MATERIAS POR TU CALIFICACION");
printf(" \n\n Alumnos del sistema");

printf(" \n\n ----------------> Armando");
printf(" \n\n ----------------> Casimiro");
printf(" \n\n ----------------> Jorge");
printf(" \n\n ----------------> Julian");
printf(" \n\n ----------------> Jose");
printf(" \n\n ----------------> Alejandro");
printf(" \n\n ----------------> Weyler");
printf(" \n\n ----------------> David");



printf("\n\n Cual es su nombre: ");
gets(nombre);//pide nombres//


if( strcmp(nombre,"jorge")|| strcmp(nombre,"alejandro") || strcmp(nombre,"weyler")|| strcmp(nombre,"david")|| strcmp(nombre,"casimiro") ||strcmp(nombre,"julian")||strcmp(nombre,"armando"))//caracteres en if,complementado con gets//
{
printf("\n\n estas Estas en el sistema");
getch();

system ("cls");

printf("\n\n -------------Colegio de Bachilleres del estado de Yucatan--------------");
printf("\n\n -------Bienvenido al sistema estimado alumno------");




printf( "\n\n ----> Introduzca una calificacion: " );
scanf( "%f", &calificacion );

while ( calificacion < 0 || calificacion > 10 )
{
printf( "\n\n ERROR: calificacion incorrecta, debe ser >= 0 y <= 10\n");
printf( "\n\n Introduzca calificacion : " );
scanf( "%f", &calificacion );
}

if ( calificacion >= 5.5 )
{
printf("\n\n %s ESTRAS APROBADO,felicidades", nombre );
}
else
{
printf( "\n\n %s ESTAS REPROBADO", nombre );

}


printf("\n\n A continiacion te mostraremos la informacion detallada de los alumnos");
getch();

printf("\n\n cargando.5%");
system ("cls");

printf("\n\n cargando..35%");
getch();
system ("cls");
printf("\n\n cargando...50%");
getch();
system ("cls");
printf("\n\n cargando....69%");
getch();
system ("cls");
printf("\n\n cargando.....78%");
getch();
system ("cls");
printf("\n\n cargando......89%");
getch();
system ("cls");
printf("\n\n cargando.......98%");
getch();
system ("cls");
printf("\n\n cargando.........COMPLETADO");
getch();
system ("cls");








system("start F:\\Proyecto\\DevC++\\materias.docx");

}




else
{
printf("no estas en el sistema");
}
getch();
return 0;
}
 
Trata de meter lo que tienes en el if en una función para que veas más claramente el error, a simple vista no lo veo, pero es mejor si lo organizas más.
 
Trata de meter lo que tienes en el if en una función para que veas más claramente el error, a simple vista no lo veo, pero es mejor si lo organizas más.
te refieres a lo de los nombres jorge , juan david? si es eso no me lo acepta me sale error
 
Nunca utilices gets, si manejas cadenas muy largas puedes desbordar la pila y eso trae muchos problemas de fallo de segmentación, y checa la sintaxis de tu if, recuerda que es if(condicion){cuerpo}else{cuerpo}, el hecho de poner llaves al por mayor trae problemas porque te haces volas con cerrarlas además de ser inecesarias para un condicional de una instrucción, estas no necesitan llave, solo utilizalas para delimitar un programa o un cuerpo, la programación estructurada en C no tiene problemas como la identación o cosas así, pero ayuda mucho para entenderlo.
 
if( strcmp("jorge",nombre)==0|| strcmp("alejandro", nombre)==0 || strcmp("weyler",nombre)==0|| strcmp("david",nombre)==0|| strcmp("casimiro",nombre)==0 ||strcmp("julian",nombre)==0||strcmp("armando",nombre)==0)

ya con esto funciono, te recomiendo que el codigo lo pongas en etiquetas html
 
Nunca utilices gets, si manejas cadenas muy largas puedes desbordar la pila y eso trae muchos problemas de fallo de segmentación, y checa la sintaxis de tu if, recuerda que es if(condicion){cuerpo}else{cuerpo}, el hecho de poner llaves al por mayor trae problemas porque te haces volas con cerrarlas además de ser inecesarias para un condicional de una instrucción, estas no necesitan llave, solo utilizalas para delimitar un programa o un cuerpo, la programación estructurada en C no tiene problemas como la identación o cosas así, pero ayuda mucho para entenderlo.


Gracias amigo por ese dato de los gets


if( strcmp("jorge",nombre)==0|| strcmp("alejandro", nombre)==0 || strcmp("weyler",nombre)==0|| strcmp("david",nombre)==0|| strcmp("casimiro",nombre)==0 ||strcmp("julian",nombre)==0||strcmp("armando",nombre)==0)

ya con esto funciono, te recomiendo que el codigo lo pongas en etiquetas html

Gracias amigo es un simple detalle que ya no lo note
 
Volver
Arriba