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

como meto una funcion

Estas en el tema de como meto una funcion en el foro de C/C++ en Foros del Web. Lo primero, puedo crear una funcion con printf o whiles??----> Código: int same(int v,int t,int c){ while(){ printf(""); printf(""); scanf(); while(){ printf(""); printf(""); scanf("); } ...
  #1 (permalink)  
Antiguo 22/01/2013, 11:56
 
Fecha de Ingreso: enero-2013
Mensajes: 8
Antigüedad: 11 años, 10 meses
Puntos: 0
como meto una funcion

Lo primero, puedo crear una funcion con printf o whiles??---->
Código:
int same(int v,int t,int c){
      while(){
                        printf("");
                        printf("");
                        scanf();
                        while(){
                                printf("");
                                printf("");
                                scanf(");
                        }
                }
y lo segundo, como introduzco esta funcion en mi "main". Lo pongo de esta forma y me salta un error.
q=same(int v,int t,int c);

Gracias foreros;)
  #2 (permalink)  
Antiguo 22/01/2013, 12:01
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 10 meses
Puntos: 606
Respuesta: como meto una funcion

Estas usando la función scanf de forma incorrecta. Revisa el manual para ver como se llama ;)

Fuera aparte, de falta una llave "}" para cerrar la función y tampoco devuelves ningún valor (aunque en la declaración indicas que responde con un int.
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 22/01/2013, 12:08
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 12 años, 3 meses
Puntos: 83
Respuesta: como meto una funcion

"...Lo primero, puedo crear una funcion con printf o whiles?..."

Si, otra cosa es que esa funcion tal cual entrará en un bucle infinito; y aun otra cosa: esa funcion es de tipo int, por lo tanto debe retornar un int.


Código:
int same(int v, int t, int c) {
    while() {
        printf("");//lo que hay entre esta linea...
        printf("");
        scanf();//y esta otra solo se ejecutará una vez
        while() {//y aquí entras en un bucle infinito
            //si no estuviese este while, el while anterior provocaria un bucle infinito
            printf("");
            printf("");
            scanf();
        }
    }
    
    return 0;//pongo 0 como podria haber puesto otro, en el codigo real este valor deberá de tener algun sentido
}


"...como introduzco esta funcion en mi 'main'..."

No la metes en el main, la llamas desde el main; para llamarla tienes que enviarle los argumentos que requiere, en el ejemplo requiere tres enteros pues deberas enviarle tres enteros; ademas la funcion retorna un entero y tal como tienes bien escrito asignas el retorno a una variable de tipo entero

Código:
int q = same(1, 2, 4);

Eso y lo que te ha comentado Malenko.

Saludos
vosk
  #4 (permalink)  
Antiguo 22/01/2013, 12:13
 
Fecha de Ingreso: enero-2013
Mensajes: 8
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: como meto una funcion

ok, a qe te refieres con que tengo que devolver valores, yo lo que intento es hacer una especie de resumen para que mi programa no engorde tanto y nomas usar la nueva funcion para todo
  #5 (permalink)  
Antiguo 22/01/2013, 14:30
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 10 meses
Puntos: 606
Respuesta: como meto una funcion

Cita:
Iniciado por javierbeg Ver Mensaje
ok, a qe te refieres con que tengo que devolver valores, yo lo que intento es hacer una especie de resumen para que mi programa no engorde tanto y nomas usar la nueva funcion para todo
Digamoslo así... la función que has puesto de ejemplo:
- que valores les pasas?
- para qué?
- la función devuelve "algo"?
__________________
Aviso: No se resuelven dudas por MP!

Etiquetas: funcion, int
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 13:46.