C/Visual C - Por que no me da ningun resultado mi funcion

 
Vista:
sin imagen de perfil
Val: 1
Ha disminuido su posición en 40 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Por que no me da ningun resultado mi funcion

Publicado por Francisco (1 intervención) el 25/03/2020 02:10:03
buen dia quisiera que me resolvieran la duda por que no me da ningun resultado mi funcion, hice el programa y complilo pero no pude hacer la funcion me devuelve el digito que se ingressa o nada. Es para devolver los multiplos de 3


1
2
3
4
5
6
7
8
9
10
int ejer4 (int n)
{
    while (i<= n){
 
        if(i%3 == 0){
        }
    }
    i++;
    return( i ) ;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 265
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Por que no me da ningun resultado mi funcion

Publicado por dario (82 intervenciones) el 25/03/2020 13:45:07
Hola, tienes varios errores.

1) Cuanto vale la variable i, el while se ejecuta de forma infinita.
2) Dentro de la condicion if no hay nada.

Podrias colocar tu codigo completo para ver como lo estas haciendo.
Salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gio
Val: 2
Ha disminuido su posición en 5 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Por que no me da ningun resultado mi funcion

Publicado por Gio (1 intervención) el 01/04/2020 03:10:52
Decinos mas detalladamente sobre que necesitás hacer y pasá el codigo completo porque la variable i parece estar declarada fuera de la función ¿o necesita estar declarada dentro?


Una posible solución a lo que pedís podría ser lo siguiente:
1
2
3
4
5
6
7
8
bool ejer4(int n)
{
    if(n%3 == 0){
        return true;
    } else {
        return false;
    }
}
Esta funcion devuelve true (verdadero) si el numero que se metió (a travez de n) es multiplo de tres, y devuelve false (flaso) si el numero que se metió no es multiplo de 3. Osea que devuelve valores booleanos por que que vas a tener que declarar posteriormente (al principio del programa) la librería <stdbool.h> de esta forma #include <stdbool.h>

Y si lo que necesitás es que te devuelva el numero que ingresaste en caso de ser múltiplo de 3, la función sería así:
1
2
3
4
5
6
7
8
int ejer4(int n)
{
    if(n%3 == 0){
        return n;
    } else {
        return false;
    }
}
Returna false (un cero) si el numero ingresante no es múltiplo de 3.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar