Página 1 de 2

programa en c

Publicado: 12 Mar 2014, 18:32
por pspivan
hola me pueden ayudar por favor tengo que hacer un programa en c y consiste en que tengo que hacer un examen de 30preguntas con incisos y al final me debe de dar las respuestas que tubo buenas y si aprobo ayudenme por favor me dijeron que era algo asi pero no me sale

Código: Seleccionar todo

#include<stdio.h>
#include<stdlib.h>

main()
{
      int total=0;
char respuesta1,respuesta;
printf("De las siguientes afirmaciones cuál considera que define mejor el campo de estudio de la Economía,El objeto de estudio de la Economía es");
printf("a.La utilidad que tienen los euros");
printf("b. Como ganar dinero en la Bolsa");
printf("c. Como los recursos escasos se usan para producir bienes y servicios para los individuos y la sociedad");
scanf("%s",&respuesta);
if(respuesta1!=="c")
total++;
system("pause");
}               

Re: programa en c

Publicado: 12 Mar 2014, 19:52
por largeroliker
Muevo a Programación.

Qué estás usando para desarrollar? Algún entorno gráfico?

La firma del main() no es la correcta. Mejor usa int main( int argc, const char* argv[] ), aunque con un int main() creo que deberías tener. Recuerda añadir al final un return 0;

De todas formas, qué conocimientos tienes en programación? Porque eso no le veo que tenga mucha estructura...

Re: programa en c

Publicado: 12 Mar 2014, 19:58
por pspivan
uso dev c++ y apenas estoy en lo basico asi que no se usar muchas cosas

Re: programa en c

Publicado: 12 Mar 2014, 21:48
por largeroliker
Y el devc++ no te subrayaba ese main()?

EDIT: Lo acabo de comprobar y no, se lo traga espectacularmente :lol:

Viendo tu caso y la falta de experiencia, lo más rápido es que lo hagas al modo perogrullo. Van a ser muchas líneas ineficaces de código, pero es lo más simple que hay.

De todas formas y revisando ese fragmento, el fallo ahí es el tener dos variables para respuestas cuando realmente sólo necesitas una. Asignas la entrada del teclado (la respuesta) a la variable respuesta pero luego la que compruebas es respuesta1.

Re: programa en c

Publicado: 12 Mar 2014, 23:07
por pspivan
ya lo pude hacer el problema a hora es que me salta a la 3 pregunta y se debe de seguir a la 2

Código: Seleccionar todo

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
main()
{
      int conta;
char res;
conta=0;
printf("1-cientifico que se le reconoce el nucleo celular");
printf("\na) Robert Brown");
printf("\nb) Antonie leeuwenhoek");
printf("\nc) H.dutrochet");
printf("\n respuesta");
scanf("%c",&res);
if(res == 'a')
conta++;

 printf("\n");
 printf("\n2-es un postulado de la teoria celular:");
 printf("\na) todas las celulas estan formadas de carbono");
 printf("\nb) las nuevas celulas se forman de las muertas");
 printf("\nc) todos los seres vivos estan formados por celulas");
 printf("\n respuesta");
 scanf("%c",&res);
if(res == 'c')
conta++;


 printf("\n3-molecula organica formada por C,H Y O");
 printf("\na) lipidos");
 printf("\nb) proteina");
 printf("\nc) carbphidratos");
 printf("\n respuesta");
  scanf("%c",&res);
if(res == 'c')
 conta++;

 printf("\n4-son ejemplos de moleculas organicas,conocidas como lipidos:");
 printf("\na) estradiol y lactosa");
 printf("\nb) laurato y colesterol");
 printf("\nc) valina y almidon");
 printf("\n respuesta");
if(res == 'b')
 conta++;
 
 printf("\n5-¿cual de las siguientes moleculas no es un aminoacido?");
 
 printf ("Puntuacion total : %d", conta);
  if (res == 4)
     printf ("ahi que razonar un poco las preguntas\n");
  else if (res == 3) printf ("......\n");

system("pause");
}               
 

Re: programa en c

Publicado: 12 Mar 2014, 23:17
por largeroliker
No, no se salta, lo he comprobado.

Re: programa en c

Publicado: 12 Mar 2014, 23:22
por pspivan
se salta me refiero a no te deja contestar osea poner la respuesta a,b,c si me entiendes? mira por ejemplo la primera pregunta responde la letra b y ya le das y te pone a contestar la pregunta 3 y no la 2

Re: programa en c

Publicado: 14 Mar 2014, 09:15
por Bright Julen
El return se queda en el buffer de scanf. Yo normalmente usaba fflush(stdin) para limpiarlo, pero he visto por ahí que poniendo un espacio antes del tipo de variable a leer es suficiente:

Código: Seleccionar todo

scanf(" %c", &res);

Re: programa en c

Publicado: 16 Mar 2014, 22:09
por codestation
pspivan escribió:uso dev c++ y apenas estoy en lo basico asi que no se usar muchas cosas


Por lo que mas quieras, deja dev c++ y usa cualquier otra cosa (por ejemplo code::blocks). Dev C++ es anticuado, obsoleto, tiene demasiadas carencias, está lleno de bugs, etc

Re: programa en c

Publicado: 16 Mar 2014, 22:17
por largeroliker
codestation escribió:Por lo que mas quieras, deja dev c++ y usa cualquier otra cosa (por ejemplo code::blocks). Dev C++ es anticuado, obsoleto, tiene demasiadas carencias, está lleno de bugs, etc

Pues sí que estaba yo oxidado yo en C/C++, creía que Dev C++ seguía siendo el estándar :lol:

Ya me estoy bajando code::blocks a ver qué tal.