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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


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

Desconectado Desconectado

Mensajes: 2



Ver Perfil
problemas con programa c
« en: 21 Abril 2015, 23:00 pm »

Ante todo muy buenas a todos,soy nuevo por aquí y tengo un problema con este código.
Si alguien me pudiera echar una mano le estaría muy agradecido.

La compilación me da correcta pero no consigo que me de el resultado correcto y después de darle mil vueltas no veo donde esta el problema, a ver si alguien sabe donde esta el problema.
Se trata de un programa que leyendo la información por pantalla del resultado electoral de diversas mesas electorales te dice si la mesa en cuestión ha superado un porcentaje de participación dado al principio.
El problema es que solo me da bien el resultado si solo hay una mesa electoral pero si es mas de una me da cero.
Yo creo que el problema esta en el bucle for que no se porque  no me reconoce la variable donde se lee el números de mesas electorales que hay.
Vamos que en una entrada tal que <50.0 1 2 100 50 100 50 0> me tendría que dar <1 50.0 0>.No se si me he explicado bien,o si lo he liado mas... aquí os dejo el codigo.
Perdon por la chapa y gracias por anticipado.

#include <stdio.h>

#define ENDSEQ 0


int main(int argc, char **argv)

{   
int idElectionHeadquarters;
int k, numTables;
int censusTable, votersTable;
float participation, result;
int nVotes;
int nCensus;

scanf("%f", &participation);
scanf("%d", &idElectionHeadquarters);

while (idElectionHeadquarters != ENDSEQ)
{
   nCensus = 0;
   nVotes = 0;

   scanf("%d", &numTables);

   for (k = 1 ; k == numTables ; k++)
    {
      scanf("%d", &censusTable);
      nCensus = nCensus + censusTable;
      scanf("%d", &votersTable);   
      nVotes = nVotes + votersTable;
    }
    if (nCensus > 0)
    {
      result = ((float) nVotes / (float) nCensus) * 100.0;
      if (result >= participation)
            {
              printf("%d ", idElectionHeadquarters);
              printf ("%2.1f " , result);
            }
    }

    scanf("%d", &idElectionHeadquarters);
}
printf("%d", ENDSEQ);
return 0;
}


En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
Re: problemas con programa c
« Respuesta #1 en: 21 Abril 2015, 23:24 pm »

El problema está que el ciclo for está asi:

Código
  1.   for (k = 1 ; k == numTables ; k++)
  2.    {
  3.      scanf("%d", &censusTable);
  4.      nCensus = nCensus + censusTable;
  5.      scanf("%d", &votersTable);  
  6.      nVotes = nVotes + votersTable;
  7.    }
  8.  

Si te das cuenta tienes la condición:

Código
  1. k == numTables

Por lo tanto, ese ciclo solo ejecutará una sola vez, y será cuando numTables sea igual a 1.

Creo que debería ser:

Código
  1. k <= numTables

Salu2s

PD: Utiliza las etiquetas GeSHi si vas a publicar código


En línea

MAN_

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Re: problemas con programa c
« Respuesta #2 en: 21 Abril 2015, 23:55 pm »

Muchas gracias DarK!!!

Efectivamente el error estaba ahi.Ahora me da el resultado perfectamente.

Gracias otra vez!!!.

 
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problemas con un programa......
Ingeniería Inversa
KJD 6 2,605 Último mensaje 26 Julio 2007, 18:30 pm
por KJD
Problemas con programa c++
Programación C/C++
xservice 0 1,271 Último mensaje 16 Febrero 2014, 02:58 am
por xservice
problemas con programa en c
Programación C/C++
EASV95 2 1,394 Último mensaje 20 Abril 2015, 21:34 pm
por EASV95
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines