¿Como se declaran las funciones, con arreglos?

adjunto el programa, me marca el error undefined reference,

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

int i,j;

void leerprecios(float precios[]);

float sumarprecios(float precios[]);

void leerarticulos(int articulos [] );

float sumarticulos (int articulos[]);

float sumatotal (float precios[]);

/* Función Principal*/

main()

{

float precios [50], suma;

int articulos [20],num,op;

do{

system("cls");

printf("\nPROGRAMA DE CONTROL DE VENTAS \n");

printf("\n----------------DEPORTES ADANN-------------------------------------------\n");

printf( "1) Agregar \n" );

printf( "2) Ver totales por día \n" );

printf( "3) Ver total de articulos por deporte \n");

printf( "4 Ventas totales por día \n");

printf( "5) Salir \n" );

printf( "Elige una opciocn:",162 );

scanf("%d",&op);

switch (op){

case 1:

leerprecios(precios);

leerarticulos(articulos);

case 2:

sumarprecios(precios);

case 3:

sumarticulos(articulos);

case 4:

sumatotal(precios);

case 5:

break;

default:

printf("opcion incorrecta");

}

}while (op!=4);

void leerprecios(float precios[]);

{

int num;

printf("\nIngrese el numero de sucursal del 1 al 50:" );

scanf ("%d",&num);

printf("\nIngrese el costo del articulo: ");

scanf("%f",&precios[num-1]);

}

void leerarticulos(int articulos[] );

{

int art;

printf("\nIngrese la clave del articulo: \n");

printf("\n 1)futbol. 2)basquetbol. 3)volibol. 4)futbol americano. 5)beisbol\n");

printf("\n 6)natación.7)Tenis.8)atletismo.9)clavados.10)squash\n");

printf("\n 11)karate.12)lucha.13)box.14)rugby 15)futsal\n");

printf("\n 16)esgrima.17)levantamiento.18)water polo.19)tiro con arco.20)gimnasia \n");

scanf("%d",&articulos[art-1]);

}

float sumarprecios(float suma);

{

float suma;

suma=suma+precios[num];

}

printf("\nventas totales en el dia para la tienda %d, %2.f",num,suma);

system ("pause");

}

1 respuesta

Calificación
  • hace 8 años
    Respuesta preferida

    A tu funcion principal le falta el tipo de dato, si no devuelve nada, ponele void. "void main (){"

    Despues de cada case, debe ir un break, porque sino, al entrar en el case 1 por ejemplo, va a hacer el 1, 2, 3, 4 y 5. Si o si necesitas un break al final de cada uno para romper la estructura.

    Bueno, el problema que tenes vos es que es muy complicado o mejor dicho casi imposible pasar arreglos como parametros, te lo digo porque me paso, y mi profesor me recomendo no hacerlo...

    Lo que podes hacer, es trabajar los arreglos de manera global, declara tus arreglos fuera del main asi estan disponibles tambien para las otras funciones, dentro de las funciones podes usar variables locales pero siempre guardalas en el arreglo antes de salir de cada funcion, si necesitas un dato especifico calculado por una funcion usa el paso por parametros pero de variables, no de los arreglos. Por ejemplo si queres buscar un precio especifico para usar en un calculo en otra funcion podes hacer algo parecido a esto:

    precio = buscarprecio(articulo);

    resultado = calcularalgo(precio);

    printf ("el resultado es: %d", resultado);

    Dentro de las funciones, recibi los parametros y al final devolve el dato calculado.

    return (precioarticulo);

    return (resultadocalculo);

    Espero haberte guiado un poco. Saludos

¿Aún tienes preguntas? Pregunta ahora para obtener respuestas.