Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Duda simple funciones en c

Estas en el tema de Duda simple funciones en c en el foro de C/C++ en Foros del Web. Hola a todos, estoy programando en C en mi escuela y no he entendido bien como se hacen las funciones en c. He estado probando ...
  #1 (permalink)  
Antiguo 22/02/2017, 13:02
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 8 meses
Puntos: 2
Duda simple funciones en c

Hola a todos, estoy programando en C en mi escuela y no he entendido bien como se hacen las funciones en c. He estado probando haver si funcionaba el código pero no hay manera, no se que error cometo. Si alguien puediese ayudarme con el código y como se estructura una función (dónde se declara, como se ejecuta...) se lo agradecería mucho. ¡Os dejo el código en c aquí, seguido a esto!

Código:
#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
	
	int mult(int a, int b, int z);
	void resultado();
	
	return 0;
}

int mult(int a, int b, int z)
{
	a=5;
	b=5;
	z=a*b;
	return(z);
}

void resultado()
{
	cout<<<<z;
}
Un saludo,
-sergi.
  #2 (permalink)  
Antiguo 22/02/2017, 15:26
 
Fecha de Ingreso: junio-2009
Mensajes: 64
Antigüedad: 15 años, 4 meses
Puntos: 6
Respuesta: Duda simple funciones en c

Hola OfSerker, hay varios errores, el primero que no es C, es C++, cout es en c++ y printf se usa en C, eso es el principio.

Por lo que asumo que estas intentando programar en C++.

Después te diría que casi todo esta mal...

en primera instancia esta bien que utilices

#include <iostream>

y deberías agregar:

using namespace std; //esto te permite acceder a funciones como cout.


En primer lugar las funciones tienen que ser declaradas antes del main(), se puede hacer una declaración y después escribir el código, por ejemplo:

Código:
int mult();
void resultado(int);

int main(int argc, char** argv) {
...
}

int mult(){
...

}

void resultado(int z){
...
}
O directamente lo podes escribir arriba del main() y funcionaria.


empecemos por el main()

escribis:

Código:
int main(int argc, char** argv) {
	
	int mult(int a, int b, int z);
	void resultado();
	
	return 0;
}
creo que lo único bien ahí es el main y el return.
No se coloca el tipo (int, main, char, etc) antes de llamar a una función.

void es una funcion que no retorna valores, cuando tiene un tipo devuelve un resultado.

Asumo que lo que queres hacer es que llames a una función, haga una multiplicación, devuelva un resultado y llames una funciona para que lo muestre en pantalla.



bueno, en principio yo no colocaría valores a pasarle porque vos estas asignandolo en la función mult(), por lo que quitaría los argumentos y lo dejaría así:

Código:
int mult()
{
	int a=5;
	int b=5;
	int z=a*b;
	return z;
}
y en el caso de la función resultado, lo dejaría así:

Código:
void resultado(int z)
{
	cout << "el resultado es: " << z << endl;
}
podría haber puesto solo la z, pero por una cuestión estética le agregue eso. Cambien te daría error hacer:
Código:
cout<<<<z;
porque no dejas espacio. Esto supongo no lo probé.

Y por ultimo en el main() haria algo así:

Código:
int main(int argc, char** argv) {

	int tmpResultado;

	tmpResultado = mult();
	resultado(tmpResultado);

	return 0;
}
o
Código:
int main(int argc, char** argv) {

	int tmpResultado;


	resultado(mult());

	return 0;
}

En el primer caso creo una variable que es donde la función me va a retornar el valor, y después la paso a resultado para que la imprima en pantalla.
En el segundo le paso directamente el parámetro que es el resultado de la función mult() que casualmente es un int, como esta declarado z (int z) como argumento.

quería algo así:

Código:
#include <iostream>

using namespace std;

int mult();
void resultado(int);

int main(int argc, char** argv) {

	int tmpResultado;


	resultado(mult());

	return 0;
}
int mult()
{
	int a=5;
	int b=5;
	int z=a*b;
	return z;
}

void resultado(int z)
{
	cout << "el resultado es: " << z << endl;
}
casi no tengo dudas que eso funcionaria y te diría que leas un poco más sobre todos los temas en general porque no es solo las funciones lo que te falta aclarar... Saludos!!!

Perceval.

Última edición por PercevalCiro; 22/02/2017 a las 20:36

Etiquetas: funciones, int, main, simple
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:38.