Autor
|
Tema: Ayuda con C++ , no encuentro un error (Leído 3,492 veces)
|
Ozharu-Ad
Desconectado
Mensajes: 5
|
Hola , me han pedido desarrollar un examen en c++ , es decir, escribir los reactivos y las posibles respuestas y que al ejecutarse se selecciones una respuesta, de ser correcta en pantalla se debe mostrar "Felicidades, respuesta correcta" , o "Respuesta incorrecta" , además de mostrarle la calificacion obtenida al usuario.
me gusta ir "por partes" , ir comprobando que algo me quedó bien para continuar con lo que siguiera , he escrito mis 10 reactivos y mis 10 respuestas, pero aqui viene el problema, al "contruir" esta parte no me marca errores , pero al ejecutar el programa me escribe los 10 reactivos y HASTA las respuestas que le corresponden al 9, me marca error en el programa (ventana emergente en windows "el pprograma no funciona correctamente..").
Ya he intantido quitar y poner por todos lados ,¿ me podrían ayudar?
El código que llevo es:
#include <stdio.h> #include <string.h> #include <math.h>
char* Reactivos[9]; char* Incisos[9]; char Respuestas[2]; int promedio;
int main() {
Reactivos[0]="\n1.Aportacion de Jon Von Neumann a la computacion"; Reactivos[1]="\n2.El numero decimal 257 convertido en numero hexadecimal es:"; Reactivos[2]="\n3. Cual es el Codigo Estandar Estadounidense para el Intercambio de Informacion."; Reactivos[3]="\n4. Dispositivos auxiliares e independientes conectados a la unidad central de procesamiento de una computadora."; Reactivos[4]="\n5. Indicar cual de los siguientes no es un dispositivo de entrada"; Reactivos[5]="\n6. Compuerta logica que realiza la funcion de producto logico"; Reactivos[6]="\n7. Lenguaje de programacion orientado a manipulacion de objetos"; Reactivos[7]="\n8. Instruccion que no es de utilidad para elaborar un ciclo"; Reactivos[8]="\n9. Cuantos errores tiene la siguiente linea de codigo : printf(Hay dos errores);"; Reactivos[9]="\n10.int es una variable de tipo";
Incisos[0]="\na)Desarrollo el codigo binario\nb)Establecio la arquitectura de computadoras \nc)Fabricacion del primer chip."; Incisos[1]="\na)AB01\nb) 101\nc) 30B"; Incisos[2]="\na)Codigo Madre\nb)Codigo ASCII\nc)Lenguaje Maquina."; Incisos[3]="\na)Tomas de corriente\nb)Perifericos\nc)Puertos USB"; Incisos[4]="\na)Mouse\nb)Monitor\nc)Teclado"; Incisos[5]="\na)OR\nb)AND\nc)CROSS"; Incisos[6]="\na) Pascal\nb)C++\nd)C"; Incisos[7]="\na)for\nb)strcpy\nc)while do"; Incisos[8]="\na)1\nb)2\nc)3"; Incisos[9]="\na)flotante \nb)entero \nc)caracter";
Respuestas[0]="a"; Respuestas[1]="b"; Respuestas[2]="c";
int i; for ( i=0; i<10; i++) { printf("%s\n",Reactivos); printf("%s\n",Incisos); } return (0); }
|
|
|
En línea
|
|
|
|
vangodp
Desconectado
Mensajes: 455
|
de esta manera si que me va bien. #include <iostream> #include <stdio.h> #include <math.h> using namespace std; char* Reactivos[9]; char* Incisos[9]; char Respuestas[2]; int promedio; int main() { Reactivos[0]="\n1.Aportacion de Jon Von Neumann a la computacion"; Reactivos[1]="\n2.El numero decimal 257 convertido en numero hexadecimal es:"; Reactivos[2]="\n3.Cual es el Codigo Estandar Estadounidense para el Intercambio de Informacion."; Reactivos[3]="\n4.Dispositivos auxiliares e independientes conectados a la unidad central de procesamiento de una computadora."; Reactivos[4]="\n5.Indicar cual de los siguientes no es un dispositivo de entrada"; Reactivos[5]="\n6.Compuerta logica que realiza la funcion de producto logico"; Reactivos[6]="\n7.Lenguaje de programacion orientado a manipulacion de objetos"; Reactivos[7]="\n8.Instruccion que no es de utilidad para elaborar un ciclo"; Reactivos[8]="\n9.Cuantos errores tiene la siguiente linea de codigo : printf(Hay dos errores);"; Reactivos[9]="\n10.int es una variable de tipo"; Incisos[0]="\na)Desarrollo el codigo binario\nb)Establecio la arquitectura de computadoras \nc)Fabricacion del primer chip."; Incisos[1]="\na)AB01\nb) 101\nc) 30B"; Incisos[2]="\na)Codigo Madre\nb)Codigo ASCII\nc)Lenguaje Maquina."; Incisos[3]="\na)Tomas de corriente\nb)Perifericos\nc)Puertos USB"; Incisos[4]="\na)Mouse\nb)Monitor\nc)Teclado"; Incisos[5]="\na)OR\nb)AND\nc)CROSS"; Incisos[6]="\na) Pascal\nb)C++\nd)C"; Incisos[7]="\na)for\nb)strcpy\nc)while do"; Incisos[8]="\na)1\nb)2\nc)3"; Incisos[9]="\na)flotante \nb)entero \nc)caracter"; int i; for ( i=0; i<10; i++){ cout << Reactivos[i]; cout << Incisos[i]; cout << endl; //printf("%s\n",Reactivos); //printf("%s\n",Incisos); } return (0); }
|
|
|
En línea
|
|
|
|
Ozharu-Ad
Desconectado
Mensajes: 5
|
Muchas gracias , en verdad me ha ayudado, y como lo has dico, funciona sin problemas, ahora a insertarle el loop para las respuestas, a que las contabilice y sacar el promedio.
Por cierto, se que es mucho pedir, pero ¿no hay forma de que no me marque el error anterior sin usar iostream?
|
|
|
En línea
|
|
|
|
vangodp
Desconectado
Mensajes: 455
|
Lo eh echo asi por encima y apesar de que me funciona en dev me da avisos. A ver si alguien echa un ojo por que hasta la tarde no tengo tiempo. //#include <iostream> #include <strings.h> #include <stdio.h> #include <math.h> using namespace std; char* Reactivos[9]; char* Incisos[9]; char Respuestas[2]; int promedio; int main() { Reactivos[0]="\n1.Aportacion de Jon Von Neumann a la computacion"; Reactivos[1]="\n2.El numero decimal 257 convertido en numero hexadecimal es:"; Reactivos[2]="\n3.Cual es el Codigo Estandar Estadounidense para el Intercambio de Informacion."; Reactivos[3]="\n4.Dispositivos auxiliares e independientes conectados a la unidad central de procesamiento de una computadora."; Reactivos[4]="\n5.Indicar cual de los siguientes no es un dispositivo de entrada"; Reactivos[5]="\n6.Compuerta logica que realiza la funcion de producto logico"; Reactivos[6]="\n7.Lenguaje de programacion orientado a manipulacion de objetos"; Reactivos[7]="\n8.Instruccion que no es de utilidad para elaborar un ciclo"; Reactivos[8]="\n9.Cuantos errores tiene la siguiente linea de codigo : printf(Hay dos errores);"; Reactivos[9]="\n10.int es una variable de tipo"; Incisos[0]="\na)Desarrollo el codigo binario\nb)Establecio la arquitectura de computadoras \nc)Fabricacion del primer chip."; Incisos[1]="\na)AB01\nb) 101\nc) 30B"; Incisos[2]="\na)Codigo Madre\nb)Codigo ASCII\nc)Lenguaje Maquina."; Incisos[3]="\na)Tomas de corriente\nb)Perifericos\nc)Puertos USB"; Incisos[4]="\na)Mouse\nb)Monitor\nc)Teclado"; Incisos[5]="\na)OR\nb)AND\nc)CROSS"; Incisos[6]="\na) Pascal\nb)C++\nd)C"; Incisos[7]="\na)for\nb)strcpy\nc)while do"; Incisos[8]="\na)1\nb)2\nc)3"; Incisos[9]="\na)flotante \nb)entero \nc)caracter"; int i; for ( i=0; i<10; i++){ //cout << Reactivos[i]; //cout << Incisos[i]; //cout << endl; printf("%s\n",Reactivos[i]); printf("%s\n",Incisos[i]); } return (0); }
|
|
|
En línea
|
|
|
|
BlackM4ster
Desconectado
Mensajes: 499
Error, el teclado no funciona. Pulse F1 para continuar
|
Muchas gracias , en verdad me ha ayudado, y como lo has dico, funciona sin problemas, ahora a insertarle el loop para las respuestas, a que las contabilice y sacar el promedio.
Por cierto, se que es mucho pedir, pero ¿no hay forma de que no me marque el error anterior sin usar iostream?
Que promedio?
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
me han pedido desarrollar un examen en c++ Un problema con el programa es que no tiene nada de C++, después de solucionar los errores compila como C sin generar mensajes de error. al ejecutar el programa me escribe los 10 reactivos y HASTA las respuestas que le corresponden al 9, me marca error en el programa (ventana emergente en windows "el pprograma no funciona correctamente.."). Eso sucede porque en C y C++ cuando se declara un array se indica su numero de elementos "N": char* Reactivos[9]; char* Incisos[9]; char Respuestas[2];
Y se accede a los elementos del array mediante los indices 0 .. N-1. No se puede, como es tu caso, utilizar el indice N porque ese elemento no existe: Reactivos[9] = "\n10.int es una variable de tipo"; Incisos[9] = "\na)flotante \nb)entero \nc)caracter"; Respuestas[2] = "c";
La solución aquí es declarar los tres arrays con un elemento adicional. Otro error se encuentra en las asignaciones utilizando el array "Respuestas": char Respuestas[2]; /* Hay que cambiar el numero de elementos a tres */ /* ... */ Respuestas[0] = "a"; Respuestas[1] = "b"; Respuestas[2] = "c";
Ya que es un array de caracteres debes asignar caracteres literales y estos se delimitan con la comilla simple, en otras palabras debes utilizar 'a', 'b' y 'c'. 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
|
|
|
Ozharu-Ad
Desconectado
Mensajes: 5
|
Que promedio?
Lo que me pide hacer es "un exámen" mstrarle al usuario las preguntas y las opciones, y dependiendo si responde bien, en pantalla debe aparecer el mensaje de felicidades o que se ha equivocado. Al final debo promediar las respuestas correctas y en el mismo programa mostrarle la calificación Un problema con el programa es que no tiene nada de C++, después de solucionar los errores compila como C sin generar mensajes de error. Eso sucede porque en C y C++ cuando se declara un array se indica su numero de elementos "N": char* Reactivos[9]; char* Incisos[9]; char Respuestas[2];
Y se accede a los elementos del array mediante los indices 0 .. N-1. No se puede, como es tu caso, utilizar el indice N porque ese elemento no existe: Reactivos[9] = "\n10.int es una variable de tipo"; Incisos[9] = "\na)flotante \nb)entero \nc)caracter"; Respuestas[2] = "c";
La solución aquí es declarar los tres arrays con un elemento adicional. Otro error se encuentra en las asignaciones utilizando el array "Respuestas": char Respuestas[2]; /* Hay que cambiar el numero de elementos a tres */ /* ... */ Respuestas[0] = "a"; Respuestas[1] = "b"; Respuestas[2] = "c";
Ya que es un array de caracteres debes asignar caracteres literales y estos se delimitan con la comilla simple, en otras palabras debes utilizar 'a', 'b' y 'c'. Un saludo Gracias , bueno, ese es como un "roce" con el profesor , el dice que nos "enseña" c++ , pero por lo que he investigado nos quedamos en c , por eso agradezco al usuario vangodp para guiarme y no usar iostream. En lo de los arrays, no encontré la falla en el primer bosquejo que hice , no se que haya hecho vangodp pero ya me "muestra" las 10 preguntas con sus opciones sin necesidad de un elemento extra , aun asi, si en lo que sigo observo fallas tomare eso en cuenta. Y bueno, estoy empezando con C , C++ , pero creo que lo de una comillar un carácter si fue un buen resbalón , muchas gracias a todos por su ayuda. Aunque parece que d enuevo estoy atorado, intentaré ver como salir
|
|
|
En línea
|
|
|
|
Ozharu-Ad
Desconectado
Mensajes: 5
|
Hola de nuevo , ya pude hacer que el programa me compare las respuestas y muestre en pantalla si es o no correcto. Pero no logro hacer que haga el promedio de las respuestas, o por lo menos que muestre la suma (ayuda mucho que me pidieron 10 ya que el resultado de la suma seria la calificación). intenté guardar un 1 si se selecciona la opcion correcta para despues sumarlos y que me muestre el resultado, pero no me lo da correctamente, el compilador no me marca error, pero siempre me da que "Tu calificacion es 34". El código que llevo es:
#include <strings.h> #include <stdio.h> #include <math.h> #include <stdlib.h>
char* Reactivos[9]; char* Incisos[9]; int promedio; int x[9];
int func() { int i=0; int a=1; int b=2; int c=3; int resp; printf("Escribe tu respuesta"); scanf("%i",&resp);
if (resp==2) { printf("Respuesta correcta");
x=1;
} else{ printf("Incorrecto , la respuesta es 2"); x=0;
} system("pause");
} int promd() { int R;
R=x[0]+x[1]+x[2]+x[3]+x[4]+x[5]+x[6]+x[7]+x[8]+x[9];
}
int main() {
Reactivos[0]="\n1.Aportacion de Jon Von Neumann a la computacion"; Reactivos[1]="\n2.El numero decimal 257 convertido en numero hexadecimal es:"; Reactivos[2]="\n3.Cual es el Codigo Estandar Estadounidense para el Intercambio de Informacion."; Reactivos[3]="\n4.Dispositivos auxiliares e independientes conectados a la unidad central de procesamiento de una computadora."; Reactivos[4]="\n5.Indicar cual de los siguientes no es un dispositivo de entrada"; Reactivos[5]="\n6.Compuerta logica que realiza la funcion de producto logico"; Reactivos[6]="\n7.Lenguaje de programacion orientado a manipulacion de objetos"; Reactivos[7]="\n8.Instruccion que no es de utilidad para elaborar un ciclo"; Reactivos[8]="\n9.Cuantos errores tiene la siguiente linea de codigo : printf(Hay dos errores);"; Reactivos[9]="\n10.int es una variable de tipo";
Incisos[0]="\n1)Desarrollo el codigo binario\n2)Establecio la arquitectura de computadoras \n3)Fabricacion del primer chip."; Incisos[1]="\n1)AB01\n2) 101\n3) 30B"; Incisos[2]="\n1)Codigo Madre\n2)Codigo ASCII\n3)Lenguaje Maquina."; Incisos[3]="\n1)Tomas de corriente\n2)Perifericos\n3)Puertos USB"; Incisos[4]="\n1)Mouse\n2)Monitor\n3)Teclado"; Incisos[5]="\n1)OR\n2)AND\n3)CROSS"; Incisos[6]="\n1) Pascal\n2)C++\n3)C"; Incisos[7]="\n1)for\n2)strcpy\n3)while do"; Incisos[8]="\n1)1\n2)2\n3)3"; Incisos[9]="\n1)flotante \n2)entero \n3)caracter";
int R; int i; for ( i=0; i<10; i++){
printf("%s\n",Reactivos); printf("%s\n",Incisos); func(); promd ();
} printf("Tu calificacion es %i",R); return (0); }
. . después de analizarlo por mas tiempo ya vi mi error , mi funcion func la movi a main , es decir, puse a que ahi contara las x y si funcionó , ahora para pulir mi programa veré como en ves de incisos 1 2 3 queden a b c
|
|
« Última modificación: 15 Noviembre 2013, 07:40 am por Ozharu-Ad »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Error Ejercicio JButton, no encuentro el error[Resuleto, se puede cerrar]
Java
|
MinW
|
0
|
1,954
|
27 Diciembre 2013, 17:59 pm
por MinW
|
|
|
ayuda no encuentro el error!
PHP
|
ediporey2000
|
1
|
1,929
|
23 Febrero 2014, 22:49 pm
por engel lex
|
|
|
[Resuelto] AYUDA esto me esta mantando (CODIGO PHP) no encuentro el error
PHP
|
invdoolca
|
1
|
1,984
|
30 Enero 2015, 22:05 pm
por MinusFour
|
|
|
AYUDA no encuentro error . C++
Programación C/C++
|
seanagu
|
3
|
3,153
|
19 Octubre 2017, 17:03 pm
por srWhiteSkull
|
|
|
No encuentro el error ayuda! C
Programación C/C++
|
Mozzard
|
4
|
2,033
|
14 Noviembre 2018, 18:52 pm
por Beginner Web
|
|