Al ejecutar el programa no funciona como quiero que funcione

0 votos
preguntado por xaviml (320 puntos) Ene 28, 2016 en C/C++
<pre lang='c'>#include <stdio.h>
main()
{

  int a;
  float b,c,d,e,f,g,h,i,j,k;

  printf("Cuantos numeros quiere introducir(con un maximo de 10 numeros)?: ");
  scanf(" %d",&amp;a);

     if(a<0 || a>10)

          printf("n Error");

  else if(a==0)
      printf("No hay nada que hacer");
  else if(a==1)

      printf("No se puede hacer la mediana de un solo numero");
  else if(a==2)

          printf("Ponga un numero: ");
          scanf(" %f",&amp;b);
           printf("Ponga otro numero: ");
          scanf(" %f",&amp;c);

          printf("n La mediana de estos %d numeros es %.2f",a,(b+c)/a);    

  if(a==3)

          printf("Ponga un numero: ");
          scanf(" %f",&amp;b);
           printf("Ponga otro numero: ");
          scanf(" %f",&amp;c);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;d);

          printf("n La mediana de estos %d numeros es %.2f",a,(b+c+d)/a);   

    if(a==4)

            printf("Ponga un numero: ");
          scanf(" %f",&amp;b);
           printf("Ponga otro numero: ");
          scanf(" %f",&amp;c);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;d);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;e);

          printf("n La mediana de estos %d numeros es %.2f",a,(b+c+d+e)/a);

     if(a==5)

            printf("Ponga un numero: ");
          scanf(" %f",&amp;b);
           printf("Ponga otro numero: ");
          scanf(" %f",&amp;c);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;d);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;e);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;f);

          printf("n La mediana de estos %d numeros es %.2f",a,(b+c+d+e+f)/a);

    if(a==6)

          printf("Ponga un numero: ");
          scanf(" %f",&amp;b);
           printf("Ponga otro numero: ");
          scanf(" %f",&amp;c);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;d);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;e);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;f);
           printf("Ponga otro numero: ");
          scanf(" %f",&amp;g);

          printf("n La mediana de estos %d numeros es %.2f",a,(b+c+d+e+f+g)/a);

     if(a==7)

                     printf("Ponga un numero: ");
          scanf(" %f",&amp;b);
           printf("Ponga otro numero: ");
          scanf(" %f",&amp;c);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;d);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;e);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;f);
           printf("Ponga otro numero: ");
          scanf(" %f",&amp;g);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;h);

          printf("n La mediana de estos %d numeros es %.2f",a,(b+c+d+e+f+g+h)/a);

     if(a==8)

          printf("Ponga un numero: ");
          scanf(" %f",&amp;b);
           printf("Ponga otro numero: ");
          scanf(" %f",&amp;c);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;d);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;e);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;f);
           printf("Ponga otro numero: ");
          scanf(" %f",&amp;g);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;h);
           printf("Ponga otro numero: ");
          scanf(" %f",&amp;i);

          printf("n La mediana de estos %d numeros es %.2f",a,(b+c+d+e+f+g+h+i)/a);

           if(a==9)

            printf("Ponga un numero: ");
          scanf(" %f",&amp;b);
           printf("Ponga otro numero: ");
          scanf(" %f",&amp;c);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;d);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;e);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;f);
           printf("Ponga otro numero: ");
          scanf(" %f",&amp;g);
             printf("Ponga otro numero: ");
          scanf(" %f",&amp;i);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;h);
           printf("Ponga otro numero: ");
          scanf(" %f",&amp;j);  

         printf("n La mediana de estos %d numeros es %.2f",a,(b+c+d+e+f+g+h+i+j)/a);    

           if(a==10)

            printf("Ponga un numero: ");
          scanf(" %f",&amp;b);
           printf("Ponga otro numero: ");
          scanf(" %f",&amp;c);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;d);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;e);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;f);
           printf("Ponga otro numero: ");
          scanf(" %f",&amp;g);
          printf("Ponga otro numero: ");
          scanf(" %f",&amp;h);
             printf("Ponga otro numero: ");
          scanf(" %f",&amp;i);
           printf("Ponga otro numero: ");
         

11 Respuestas

0 votos
respondido por xaviml (320 puntos) Ene 28, 2016
Y lo de: return 1; para k sirvee?


0 votos
respondido por Torres (8,580 puntos) Ene 28, 2016
el método main devuelve un entero:

int main(){

Por eso lo de devolver un 1, podía ser cualquier otro número...

Como va el repaso a los tutoriales? jeje

Un saludo


0 votos
respondido por xaviml (320 puntos) Ene 28, 2016
Va bien, pero bueno, de momento estoy en la intro, además está en inglés y al traducir, no es k traduzca del todo bien, pero me voy aclarando, está muy bien! muchas gracias!(:


0 votos
respondido por Torres (8,580 puntos) Ene 28, 2016
Me alegro,

Pero si lo quieres en español búscalo que hay miles y miles, acostúmbrate a usar google que está casi todo ahí.

Además C es un lenguaje relativamente "viejo" por lo que hay mucha documentación y cursos online.

http://tinyurl.com/25d6xzp

Un saludo


0 votos
respondido por xaviml (320 puntos) Ene 28, 2016
Vale, vale, he cojido la idea, el ejemplo me ha aclarado mucho la duda, muchas gracias!


0 votos
respondido por Torres (8,580 puntos) Ene 28, 2016
Buenas,

En la variable contador (igual el nombre no es muy adecuado) va acumulando la suma parcial de cada número.

Al hacer contador=contador+cantidad2;

Lo que está haciendo en sumar el nuevo valor introducido al a la suma parcial que ya existe y lo guarda todo en la propia variables contador.

EJEMPLO:

Situación inicial: contador=0

Introduzca un valor: 4

contador = 0 + 4;

Situacion tras 1 iteración: contador = 4

Introduzca un valor = 5

contador = 4 + 5

Situación tras 2 iteraciones: contador = 9

Espero que se entienda.

Un saludo


0 votos
respondido por Torres (8,580 puntos) Ene 28, 2016
Mientras veía tu código veo que te han respondido. Te recomiendo lo mismo que @jubalo, empieza de 0, con algún tutorial o algún libro, hay muchos y muy buenos sobre C por internet.

Tu código tiene fallos muy básicos, de control de flujo para empezar (no poner llaves a los if´s), el uso de bucles, sobre todo para la entrada/salida de información es muy básico.

Lo dicho empieza de 0 y verás como van saliendo las cosas.

Te dejo un tutorial que he encontrado:

http://gd.tuwien.ac.at/languages/c/programming-bbrown/default.htm

Y un programilla de lectura de datos como ejemplo:

<pre lang='C'>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#define MAXBUFFERSIZE   80

void cleartoendofline( void );          /* ANSI function prototype */

void cleartoendofline( void )
{
    char ch;
    ch = getchar();
    while( ch != 'n' )
        ch = getchar();
}

int main()
{

    char    ch;                     /* handles user input */
    char    buffer[MAXBUFFERSIZE];  /* sufficient to handle one line */
    int     char_count;             /* number of characters read for this line */
    int     exit_flag = 0, number, valid_choice;

    while( exit_flag  == 0 ) {
        valid_choice = 0;
        while( valid_choice == 0 ) {
            printf("Elige un número entre 1 y 1000n");
            ch = getchar();
            char_count = 0;
            while( (ch != 'n')  &amp;&amp;  (char_count < MAXBUFFERSIZE)) {
                buffer[char_count++] = ch;
                ch = getchar();
            }
            buffer[char_count] = 0x00;      /* null terminate buffer */
            number = atoi( buffer );
            if( (number < 1) || (number > 1000) )
                printf("07Error. Fuera del rango 1-1000n");
            else
                valid_choice = 1;
        }
        printf("nEl número que has introducido es:n");
        printf("%dn", number);

        valid_choice = 0;
        while( valid_choice == 0 ) {
            printf("Seguir (Y/N)?n");
            scanf(" %c", &amp;ch );
            ch = toupper( ch );
            if((ch == 'Y') || (ch == 'N') )
                valid_choice = 1;
            else
                printf("07Error: Opción incorrectan");
            cleartoendofline();
        }
        if( ch == 'N' ) exit_flag = 1;
    }

}

0 votos
respondido por xaviml (320 puntos) Ene 28, 2016
Muchas gracias Jubalo y Torres, antes de seguir preguntando, prefiero ver los tutoriales que me ha dicho Torres, yo he estado viendo tutoriales, pero el for no me ha quedado muy claro. Cuando acabe de ver los tutoriales, si hay alguna duda, ya lo preguntaré en esta misma página. He tenido en cuenta todo lo que me habéis dicho, muchas gracias de nuevo!


0 votos
respondido por jubalo (300 puntos) Ene 28, 2016
#include<stdlib.h>

#include<stdio.h>

int main(){

int cantidad,cantidad2,i;

float media,contador=0;

printf("Cuantos numeros deseas introducir para calcular la median");

scanf("%d",&amp;cantidad);

fflush(stdin);

for(i=0;i<cantidad;i++){

printf("Introduzca un valorn");

scanf("%d",&amp;cantidad2);

fflush(stdin);

contador=contador+cantidad2;

}

media=contador/cantidad;

printf("La media de estos %d numeros es %fn",cantidad,media);

system("pause");

return 1;

}

//Estoy capullo lleva dias colgado en otra sección, jajajajajaja ;-) a mandar!!!!!!!!


0 votos
respondido por xaviml (320 puntos) Ene 28, 2016
Cuando pones: contador=contador+cantidad2, a que se refiere? Me lo puedes explicar Jubalo, porfavor? Muchas gracias(:


Preguntas relacionadas

Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código
...