Autor
|
Tema: [C++] Necesito una mano :D (Leído 2,687 veces)
|
santiagolo
Desconectado
Mensajes: 3
|
Bueno, hola gente, soy nuevo, ya me estaré presentando. Tengo que rendir programación, la verdad es que siempre odie el tema porque no lograba entenderlo. Estos últimos dos meses, me puse a estudiar, y creanme, me enamoré de esto, me encanta hacer programitas todo el tiempo, esucuchando música y relajandome jaja. Bien, vayamos al punto en cuestión. Hice este programa, y tengo un solo error. Me considero un "Novato" o "Principiante" y estoy aprendiendo mucho, pero nunca termino este programa. Aquí el code: /* Trabajo Práctico de Programación FEBRERO 18/*/
#include <stdlib.h> #include <stdio.h> #include "string.h" int main(){ int cant,c,dni; char nomb[150][10],ape[150][10],ts[150][10]; int cargar(){ printf ("Ingrese la cantidad de empleados :"); scanf ("%i",&cant); for(c=1;cant>=10;c++){ system("cls"); printf ("Ingrese el nombre del empleado:",c); scanf ("%s",&nomb[c]); printf ("Ingrese el apellido del empleado:",c); scanf ("%s",&ape[c]); printf ("Ingrese el DNI del empleado :",c); scanf ("%s",&dni); printf ("Ingrese el Tipo de sangre del empleado (POSITIVA-NEGATIVA)",c); scanf ("%s",&ts[c]); } } int ver(){
if(cant==0){ printf("No ingreso los empleados"); } else{ printf("Empleados:\n"); for(c=1;c<=cant;c++){ printf("\n %s %s %s",nomb[c],ape[c],ts[c]); } } } int menu(){ int opc; do{ system ("cls"); printf ("Cargar\n Ver\n2 Salir\n3"); scanf ("%d",&opc); switch(opc){ case 1: cargar(); break; case 2: ver(); break; case 3: printf ("Fin del programa"); break; default: printf ("La opcion es incorrecta"); break; while (opc!=3); system ("pause"); } } }
El error: C:\Users\Miguel\Desktop\Nueva carpeta\santi!!!!.c In function `menu': 58 C:\Users\Miguel\Desktop\Nueva carpeta\santi!!!!.c syntax error before '}' token Como verán, es el último "Corchete" en el que sale el error marcado. Con muchas ansias, espero su respuesta! Muchas gracias!
|
|
|
En línea
|
|
|
|
xaps
Desconectado
Mensajes: 157
|
Bienvenido. Varias recomendaciones iniciales: - No escribas todo el texto en negrita: Úsalo para remarcar palabras clave. - Deja el texto alineado a la izquierda. Es más fácil de leer. - Usa las etiquetas GeSHi para introducir código. En cuanto al código, tienes mal puestos los corchetes en la función menú: int menu(){ int opc; do{ system ("cls"); printf ("Cargar\n Ver\n2 Salir\n3"); scanf ("%d",&opc); switch(opc){ case 1: cargar(); break; case 2: ver(); break; case 3: printf ("Fin del programa"); break; default: printf ("La opcion es incorrecta"); break; while (opc!=3); system ("pause"); } }
pasaría a ser: int menu() { int opc; do{ system ("cls"); printf ("Cargar\n Ver\n2 Salir\n3"); scanf ("%d",&opc); switch(opc){ case 1: cargar(); break; case 2: ver(); break; case 3: printf ("Fin del programa"); break; default: printf ("La opcion es incorrecta"); break; }; } while (opc!=3); system ("pause"); }
Fallos: - No habías cerrado el switch. - El corchete para cerrar el bucle do..while estaba mal colocado. Saludos
|
|
|
En línea
|
"The programmers of tomorrow are the wizards of the future" - Gave Newel
|
|
|
Gh057
Desconectado
Mensajes: 1.190
|
Hola santiagolo justamente, estaba indicándote lo mismo, solo agrego a la excelente explicación de xaps de que el compilador cuando hay un error en la sintaxis, puede informarte en la línea inmediatamente inferior al mismo, ténlo en cuenta ya que puedes estar buscando un error y puede pasar por ejemplo que en la superior le falta el fin de sentencia ";" (para él es la continuación de la misma) o por un fin de bucle o función, etc. Saludos!
|
|
« Última modificación: 21 Febrero 2014, 02:40 am por Gh057 »
|
En línea
|
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Otros errores son: * Definir la función "cargar" dentro de la función main: int main() { int cant,c,dni; char nomb[150][10],ape[150][10],ts[150][10]; int cargar() { printf ("Ingrese la cantidad de empleados :"); for(c=1;cant>=10;c++){ printf ("Ingrese el nombre del empleado:",c ); printf ("Ingrese el apellido del empleado:",c ); printf ("Ingrese el DNI del empleado :",c ); printf ("Ingrese el Tipo de sangre del empleado (POSITIVA-NEGATIVA)",c ); } }
* Bucle do ... while mal estructurado en la función "menu". * En la función "cargar" tienes un bucle infinito: for(c=1;cant>=10;c++){ /* Bucle infinito ya que no se modifica el valor de cant */
* En esa misma función no puedes utilizar la variable "cant" ya que esta la declaras en la función main. Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
santiagolo
Desconectado
Mensajes: 3
|
Uy, quedé sumamente sorprendido con sus respuestas, no esperaba tanta ayuda jajaja. Muchísimas gracias!
Por otro lado, surgió otro problemita, cuando compilo el programa, se cierra automáticamente! ¿A qué se debe esto?/* Trabajo Práctico de Programación FEBRERO 18/*/
#include <stdlib.h> #include <stdio.h> #include "string.h" int main() { int cant,c,dni; char nomb[150][10],ape[150][10],ts[150][10]; int cargar() { printf ("Ingrese la cantidad de empleados :"); scanf ("%i",&cant); for(c=1;cant>=10;c++){ system("cls"); printf ("Ingrese el nombre del empleado:",c); scanf ("%s",&nomb[c]); printf ("Ingrese el apellido del empleado:",c); scanf ("%s",&ape[c]); printf ("Ingrese el DNI del empleado :",c); scanf ("%s",&dni); printf ("Ingrese el Tipo de sangre del empleado (POSITIVA-NEGATIVA)",c); scanf ("%s",&ts[c]); } } int ver(){
if(cant==0){ printf("No ingreso los empleados"); } else{ printf("Empleados:\n"); for(c=1;c<=cant;c++){ printf("\n %s %s %s",nomb[c],ape[c],ts[c]); } } } int menu() { int opc; do{ system ("cls"); printf ("Cargar\n Ver\n2 Salir\n3"); scanf ("%d",&opc); switch(opc){ case 1: cargar(); break; case 2: ver(); break; case 3: printf ("Fin del programa"); break; default: printf ("La opcion es incorrecta"); break; }; } while (opc!=3); system ("pause"); } } PD: Los colores del texto, se me desconfiguraron, pero logré colocarlos en Herramientas/OpcionesDelEditor/Sintaxis, y acá no funcionan
|
|
|
En línea
|
|
|
|
xaps
Desconectado
Mensajes: 157
|
Me autocito: Varias recomendaciones iniciales: - No escribas todo el texto en negrita: Úsalo para remarcar palabras clave. - Deja el texto alineado a la izquierda. Es más fácil de leer. - Usa las etiquetas GeSHi para introducir código.
Para los colores del código usa GeSHi como ya te he dicho, lo tienes justo encima de la opción de cambiar color. Y el programa se cierra por una simple razón: No tiene ninguna pausa. Se ejecutan las instrucciones del main y finaliza. Si quieres que no se te cierre solo, puedes hacer que se mantenga a la espera de un input. Por cierto, desde el main no llamas a ninguna de las funciones que has programado, repásalo.
|
|
|
En línea
|
"The programmers of tomorrow are the wizards of the future" - Gave Newel
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[GUI] Necesito una mano (Solucionado)
Programación Visual Basic
|
Data Seek3r
|
4
|
2,607
|
28 Abril 2010, 08:25 am
por Data Seek3r
|
|
|
Hola Gente... necesito una mano
« 1 2 »
Ingeniería Inversa
|
capjacksparrow
|
15
|
9,587
|
14 Mayo 2011, 01:06 am
por capjacksparrow
|
|
|
Necesito una mano . [Función en PHP]
Hacking
|
TheStroker
|
0
|
2,236
|
2 Agosto 2012, 03:38 am
por TheStroker
|
|
|
sorri necesito una mano
Hacking Wireless
|
txaske
|
4
|
2,801
|
9 Diciembre 2013, 09:44 am
por txaske
|
|
|
Necesito una mano para calcular distancias XY
« 1 2 »
Java
|
WHK
|
13
|
6,728
|
23 Octubre 2016, 22:14 pm
por WHK
|
|