Ayuda con funciones en C

Zayker

Bovino adolescente
#1
Hola amigos bakunos, pues solo les queria pedir ayuda con el uso de las funciones en el lenguaje C, ensi solo en sus declaraciones, llamadas y como crear los sub programas o sus cuerpos, ensi el unico que se me dificulta jucho es por ejemplo el int principal (int, int, int), he buscado por el internet y encuentro ejemplos y eso, pero muchos son muy confusos o simplemente no lo explican, y he decidido acudir al corral en busca de ayuda, si alguien me pudiera ejemplificar su uso o explicarlo con (manzanas y peras) seria de muy buena ayuda.

aqui les pongo todo mi codigo en c, porcierto uso arreglos pero es mi primera practica con ellos, espero que esten bien:

#include<stdio.h>
#include<conio.h>
void principal();
int conteo(int nums);

main()
{
principal();
return(0);
}

void principal(void)
{
int array[10]={-1}, i=0, nums, sumarray=0, promarray, sumpar=0, prompar=0,contador=0,promedio, numeros;
gotoxy(5,5);puts("Ingresa 10 numeros enteros, las unicas cantidades validas seran: \n entre 10-500 , 1000-1500 y numeros > a 2000");
for(i=0;i>=10;i++)
{
scanf("%d",&nums);
if((nums>=10&&nums<=500)||(nums>=1000&&nums<=1500)||(nums>=2000))
{
array=nums;
sumarray=sumarray+nums;
if((nums>=101&&nums<=500)||(nums>=1000&&nums<=1500)||(nums>=2000))
{
numeros=conteo(int nums);
contador=contador+1;
}
if((i==2)||(i==4)||(i==6)||(i==8)||(i==10))
{
sumpar=sumpar+nums;
prompar=prompar/5;
}
}
else
{
gotoxy(5,5);puts("El numero que ingresaste no es invalido, ingresa uno nuevo");
i=i-1;
}
}
promarray=sumarray/10;

gotoxy(5,5);printf("El promedio del los numero del arreglo son:n\****>%d, el promedio de los numero en posiciones pares es:n\****>%d",promarray, prompar);
promedio=numeros/contador;
gotoxy(5,5);printf("el promedio de los numero arriba de 100 es:n\****>%d", promedio);
}


int conteo(int nums)
{
int suma=0;
suma=suma+nums;
return suma;
}
el error que me sale dice "possible use of 'numeros' before definition in function principal()" y la otra que deplano no le entiendo es: "Expression syntax in function principal"

la verdad es una practica de la escuela pero el maestro no nos enseño los arreglos y las funcones en practica, solo teoricas y cada una fue de 3 renglones en su definicion, no nos enseño ni explico a usarlas, espero me puedan ayudar, gracias.

porcierto, el programa que ocupe se llama borland turbo c++ 4.5
:comillas:
 
#2
Solucion

Con respecto a tu código hay varios errores que que ver espero que esto te ayude:

#include<stdio.h>
#include<conio.h>
void principal();
int conteo(int nums);

main()
{
principal();
return(0);
}

void principal(void)
{
int array[10]={-1}, i=0, nums, sumarray=0, promarray, sumpar=0, prompar=0,contador=0,promedio, numeros;
gotoxy(5,5);puts("Ingresa 10 numeros enteros, las unicas cantidades validas seran: \n entre 10-500 , 1000-1500 y numeros > a 2000");
for(i=0;i>=10;i++) /* Aquí estas creando un error ya que tu código dice esto 1>=10 y esto es falso la respuesta seria for(i=0;i<10;i++) ya que 1<10 */
{
scanf("%d",&nums);
if((nums>=10&&nums<=500)||(nums>=1000&&nums<=1500)||(nums>=2000))
{
array=nums;
sumarray=sumarray+nums;
if((nums>=101&&nums<=500)||(nums>=1000&&nums<=1500)||(nums>=2000))
{
numeros=conteo(int nums); /* solo se le envian para metros (variales o valores), no necesitas declarar números lo correcto seria números=conteo(nums)*/
contador=contador+1;
}
if((i==2)||(i==4)||(i==6)||(i==8)||(i==10)) /*Esto si empiezas desde el 0 seria lógico que en cuestión de posiciones 2 seria el lugar 3, así sucesivamente , es esta parte su estas sacando el promedio de 4 datos impares ya que nunca capturas la posicion 10 ya que tu array no es de 11 elementos*/
{
sumpar=sumpar+nums;
prompar=prompar/5; /* yo creo 0/5 =0 deves de definir bien ya prompar nunca cambia de 0*/
}
}
else
{
gotoxy(5,5);puts("El numero que ingresaste no es invalido, ingresa uno nuevo");
i=i-1;
}
}
promarray=sumarray/10; /* Aqui tal vez de cambiar el tipo de dato ya que tus resultados siempre serán enteros pero no necesariamente exactos un ejemplo seria 15/10 =1 en tu programa, pero exacto seria 1.5 yo recomiendo utilizar tipo float o double*/
gotoxy(5,5);printf("El promedio del los numero del arreglo son:n\****>%d, el promedio de los numero en posiciones pares es:n\****>%d",promarray, prompar);/*debes de aprender cuestinos basicas con "n\ no es salto de linea ", "\n si es salto de linea" y aquí en prompar saldria 0 por lo ya antes mencionado para que te salga el resultado esperado antes de imprimir resultado podrías poner lo siguiente una linea antes "prompar=sumpar/5" notas la diferencia */

promedio=numeros/contador;
gotoxy(5,5);printf("el promedio de los numero arriba de 100 es:n\****>%d", promedio); /* lo mismo con los saltos de lineay los valores no son exactos ypodria ocurrir un error cuan do no se introduzcan números mayores de 100 tenlo presente*/
}


int conteo(int nums)
{
int suma=0;
suma=suma+nums;
return suma;
}



en o personal te recomiendo leer manuales de programación en esos si vienen muchos ejemplos con funciones y te enseñan todo este tipo de conceptos básicos suerte

Suerte...
 

Zayker

Bovino adolescente
#3
muchas gracias, ya logre correr el programa y funciona al 100, te agradesco por tus observaciones y estudiare mas, aun que no me guste la programacion pero = se deve de aprender, muchas gracias.
 
Arriba