elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda ejercicio
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda ejercicio  (Leído 1,333 veces)
fjcamaraac

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Duda ejercicio
« en: 19 Junio 2018, 00:31 am »

Hola.
Tengo que hacer un programa que realiza un encuesta, seleccionando aleatoriamente una pregunta de un documento de texto. Os enseño lo que llevo:

/* Trabajo obligatorio. Estructura de datos. Francisco Javier Cámara Acedo*/
#include <stdio.h>
#include<stdlib.h>
#include<time.h>
#define BUFFER 81 /*Longitud de línea*/
int main(void){
/* Aquí defino las variables, donde conta,contb,contc y contd contarán las
veces que se marcarán las respuestas a,b,c y d respectivamente. nusu y npreg
hacen referencia al número de usuarios que harán la encuesta, así como el
número de preguntas que tendrá cada uno.*/
int conta,contb,contc,contd,nusu,npreg,num,contusua,contpreg,eleccion,suma;
int i;
/* Defino los porcentajes de las respuestas como números reales*/
float porcenta,porcentb,porcentc,porcentd;
char v[5];
char Texto[BUFFER];
/* A continuación, indico y abro el archivo que contiene las preguntas*/
FILE *archivo;
char* preguntas = "C:\\preguntas.txt";
archivo=fopen(preguntas,"r");
/* Utilizo un comprobador para ver si he abierto bien el fichero*/
    if(archivo==NULL)
    {
       printf("\nNo se pudo abrir el fichero...\n");

    }else{
       printf("\nEl fichero se abrió correctamente\n");

      fclose(archivo);
    }   
i=0;

/* Con un bucle while, recupero la línea de caracteres del archivo y mientras
esta sea distinta de NULL, entonces el bucle se seguirá ejecutando*/
while (fgets(Texto,BUFFER,archivo)!=NULL){
/* Aquí lo que hago es que guardo en un vector que he definido previamente como
variable caracter lo que hay en la determinada línea del archivo*/
scanf("%s",&v);
printf("Pregunta %s\n",v);
i++;
}
/* Pregunto al usuario cuántos usuarios realizarán la encuesta*/
printf("Dime el numero de usuarios que realizarán la encuesta\n");
scanf("%d",&nusu);
/*Pregunto el número de preguntas que tendrá la encuesta*/
printf("Dame el numero de preguntas que tendrá la encuesta\n");
scanf("%d",&npreg);
/* Inicializo a cero todos los contadores de las respuestas*/
conta=0;
contb=0;
contc=0;
contd=0;
/*Inicializo a 0 el número de usuarios que realizarán la encuesta*/
contusua=0;
/* Ahora mediante un bucle while realizará la encuesta siempre y cuando no se
hayan completado el número de usuarios que se indicó anteriormente*/
while(contusua<nusu){
contusua=contusua+1;
/*Inicializo a 0 el número de preguntas*/
contpreg=0;
while(contpreg<npreg){
contpreg=contpreg+1;
/*Mediante la función rand, genero un número aleatorio entre 1 y el valor
que se haya añadido de npreg. Nota: Al usar la función módulo, el número que
se obtiene, será entero*/
num=1+rand()%(npreg-1);
printf("La pregunta es %s\n",v[num]);
printf("Elige la respuesta\n");
/* Ahora muestro las opciones y pido al usuario que elija una*/
printf("1) Muy bueno\n");
printf("2) Bueno\n");
printf("3) Malo\n");
printf("4) Muy malo\n");
printf("Marca 1,2,3 o 4\n");
scanf("%s",&eleccion);
/* En función de qué respuesta elija, o bien conta,contb,contc o contd, se
incrementarán en una unidad*/
if (eleccion=1){
conta=conta+1;
}else if (eleccion=2){
contb=contb+1;
}else if(eleccion=3){
contc=contc+1;
}else if(eleccion=4){
contd=contd+1;
}
}
contusua=contusua+1;
}

/* Una vez que hemos realizado todo, hallamos las estadísticas*/
/*Porcentaje de respuestas dadas*/
suma=conta+contb+contc+contd;
porcenta=(conta/suma)*100;
porcentb=(contb/suma)*100;
porcentc=(contc/suma)*100;
porcentd=(contd/suma)*100;
printf("El porcentaje de a es: %d\n",porcenta);
printf("El porcentaje de b es: %d\n",porcentb);
printf("El porcentaje de c es: %d\n",porcentc);
printf("El porcentaje de d es: %d\n",porcentd);

return 0;
getch();
}



Yo creo que el problema lo tengo en la función fgets. A ver si me podéis ayudar por favor, para que me imprima por pantalla la pregunta
Un saludo y gracias de antemano.


En línea

kub0x
Enlightenment Seeker
Colaborador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: Duda ejercicio
« Respuesta #1 en: 19 Junio 2018, 03:47 am »

Ayudaría si formateases el código con la etiqueta de código Geshi para C.


En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda en ejercicio++
Ejercicios
Lamarkus 1 3,277 Último mensaje 1 Diciembre 2010, 17:31 pm
por [L]ord [R]NA
duda con un ejercicio..
Programación C/C++
fer_fer_73 8 4,041 Último mensaje 4 Febrero 2011, 01:24 am
por negux
Duda ejercicio C
Programación C/C++
cortex123 1 1,978 Último mensaje 13 Junio 2011, 21:09 pm
por El_Java
Duda con ejercicio
Programación C/C++
bigfu 2 1,978 Último mensaje 24 Agosto 2011, 22:43 pm
por bigfu
duda con un ejercicio
Programación C/C++
Freelancer 4 2,468 Último mensaje 10 Septiembre 2011, 04:31 am
por Freelancer
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines