Resultados 1 al 4 de 4

Hilo: Duda con programación en C

  1. #1
    Registro
    Dec 2014
    Posts
    346
    Nivel
    Universidad (Ingeniería)
    ¡Gracias!
    1 gracias

    Predeterminado Duda con programación en C

    Hola, estoy intentando programar en C esto:

    Escribir un programa que pida 5 números enteros por teclado y visualice su media por pantalla. Solo quiero usar "C", no he dado otros:

    #include<stdio.h>
    int n[5];
    float media;
    int main void {
    printf ("escribe un numero");
    scanf ("%d", &n[0]);
    printf ("escribe un numero");
    scanf ("%d", &n[1]);
    printf ("escribe un numero");
    scanf ("%d", &n[2]);
    printf ("escribe un numero");
    scanf ("%d", &n[3]);
    printf ("escribe un numero");
    scanf ("%d", &n[4]);

    media = ("n[0]+n[1]+n[2]+n[3]+n[4]")/5;
    printf media ("%f\n",media);
    }

    El problema es que cuando lo ejecuto en la terminal de Linux, haciendo gcc -o nombre_archivo.c nombre_archivo me dice que hay errores, que no acabo de detectar, no entiendo lo que me dice,me pone esto:

    Si me dejan paso foto Gracias

    ALI_1.c:6:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
    int main void {


    Gracias

  2. #2
    Registro
    Jul 2016
    Ubicación
    Rosario, Argentina
    Posts
    96
    Nivel
    Universidad (Ingeniería)
    ¡Gracias!
    34 (31 msgs.)

    Predeterminado Re: Duda con programación en C

    No recuerdo mucho de lenguaje C, pero creo que cuando pones void se utiliza par crear una subrutina o función, y el programa lo que espera es que después del void declares los parametros locales de dicha funcion o subrutina, por eso te tira error.
    FIjate si funciona el programa asi:

    #include<stdio.h>
    int n[5];
    float media;
    main()
    {
    printf ("escribe un numero");
    scanf ("%d", &n[0]);
    printf ("escribe un numero");
    scanf ("%d", &n[1]);
    printf ("escribe un numero");
    scanf ("%d", &n[2]);
    printf ("escribe un numero");
    scanf ("%d", &n[3]);
    printf ("escribe un numero");
    scanf ("%d", &n[4]);


    media = (n[0]+n[1]+n[2]+n[3]+n[4])/5;
    printf ("%f\n",media);
    }

    PD: en la linea media = ("n[0]+n[1]+n[2]+n[3]+n[4]")/5; le saque las comillas porque estaban de mas, y la entradas de numero por teclado la podrias haber echo con un bucle de 1 a 5.

  3. #3
    Registro
    Feb 2010
    Ubicación
    Elementos 5,6,7
    Posts
    2 715
    Nivel
    Grado en Física
    Artículos de blog
    11
    ¡Gracias!
    1 150 (1 030 msgs.)

    Predeterminado Re: Duda con programación en C

    Yo diría que no habría problemas en declarar la función main con el void, al menos yo lo he hecho muchas veces. Quizá lo que falle es que falta poner al final de todo un return 0 para que el programa sepa que sale del main.
    En cualquier caso, si no has dado aún el for no tienes otra forma de hacerlo, pero este tipo de ejercicios no está pensado para escribir mil veces "escribe un número". Por ejemplo si te hubiesen pedido que metas 1000 números por pantalla y des su media, con un for el programa quedaría incluso más corto que el que has escrito.

    Saludos,
    k_BN_A \cdot \dst \sum_{k=0}^{\infty} \dfrac{1}{k!} \cdot 50 \cdot 10_{\text{hex}} \cdot \dfrac{2...

  4. #4
    Registro
    May 2016
    Ubicación
    Murcia
    Posts
    120
    Nivel
    Universidad (Química)
    ¡Gracias!
    37 (32 msgs.)

    Predeterminado Re: Duda con programación en C

    int main void{
    debería haberse escrito como
    int main(void){
    Los paréntesis son necesarios para indicar que se declara una función y no una variable. void indica que no se van a pasar argumentos a la función main.

    La forma estándard de declarar main es

    int main(int argc,char *argv[])

    Donde se indica que main va a recibir dos parámetros, el primero, argc, un entero que indica la cuenta de strings en argv. El segundo es un array de strings con las parámetros de invocación, siendo el primero, el nombre del programa con su path completo y el resto, los argumentos pasados desde el sistema operativo.

    int main, indica que la función va a devolver un entero tras su invocación. Así, el programa debe terminar con

    return 0;
    o
    return variable_entera.

    Este valor se suele utilizar para analizar el código de retorno del programa, el cual se puede interrogar a la salida del programa.

    El resto ya te lo han comentado.




Información del hilo

Usuarios viendo este hilo

Ahora hay 1 usuarios viendo este hilo. (0 miembros y 1 visitantes)

Hilos similares

  1. C/C++ Duda programación en C
    Por CARLIN en foro Métodos informáticos
    Respuestas: 5
    Último mensaje: 03/11/2016, 14:37:21
  2. 2o ciclo Duda ejercicio de programación no lineal (Khun Tucker)
    Por Resh en foro Métodos matemáticos
    Respuestas: 0
    Último mensaje: 20/01/2016, 09:58:50
  3. Programación en C
    Por Tempest en foro Orientación
    Respuestas: 0
    Último mensaje: 01/04/2015, 13:18:17
  4. Programación
    Por JESM en foro Orientación
    Respuestas: 4
    Último mensaje: 13/01/2013, 19:54:45
  5. Programación Programación casio.
    Por Umbopa en foro Métodos informáticos
    Respuestas: 3
    Último mensaje: 06/11/2012, 16:20:01

Permisos de publicación

  • No puedes crear hilos
  • No puedes responder
  • No puedes adjuntar archivos
  • No puedes editar tus mensajes
  •