Autor
|
Tema: Multiplos del 5 con modulares en C (Leído 5,965 veces)
|
estudiante_1
Desconectado
Mensajes: 47
|
Hola, quisiera hacer un programa que me muestre los 20 primeros multiplos del 5. Sé hacerlo en el main pero a la hora de hacerlo con modulares no me sale, alguien puede ayudarme por favor? . Esto es lo que yo he hecho: #include<stdio.h> #include<stdlib.h> int multiplos(int i,int r){ for(i=1;i<=20;i++){ r=5*i; } return (r); } int main(void){ int i,r; printf("%d\n",multiplos(i,r)); system("pause"); return(0); }
Mod: los códigos deben ir en etiquetas GeSHi
|
|
« Última modificación: 18 Julio 2015, 19:23 pm por engel lex »
|
En línea
|
|
|
|
user-marcos
Desconectado
Mensajes: 159
|
Tienes varios fallos, por ejemplo multiplos recibe el valor de i, pero luego en el for le asignas el valor 1, entonces ¿Para que usas la variable i? int multiplos(int i,int r){ for(i=1;i<=20;i++){
#include<stdio.h> #include<stdlib.h> const int MULTIPLO = 5; const int RANGO = 20; void multiplos() { for(int i=0 ; i < RANGO; i++) { } } int main() { multiplos(); }
|
|
« Última modificación: 18 Julio 2015, 23:57 pm por user-marcos »
|
En línea
|
|
|
|
estudiante_1
Desconectado
Mensajes: 47
|
Uum vale lo entiendo, ahora bien, mi profesor nos dijo que no quiere ver ningún printf en ningún subprograma. Se puede hacer en el programa de los múltiplos?
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
La forma lógica de hacerlo es trabajando con arreglos. Le pasas un arreglo de 20 int a la función, y que lo rellene. ¿Trabajásteis con arreglos?
|
|
|
En línea
|
|
|
|
estudiante_1
Desconectado
Mensajes: 47
|
Sí, pero este ejercicio me lo pide sin arreglos. Repito, se puede hacer lo que hizo user-marcos sin printf en el subprograma?
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
La única forma sería convertir todos los números a una cadena del tipo "5 10 15 20 ...", e imprimirla fuera. Pero sin arreglos, vectores, algún método de guardar los valores en general...
|
|
|
En línea
|
|
|
|
estudiante_1
Desconectado
Mensajes: 47
|
Gracias lo intentaré y ya os cuento. Muchas gracias.
|
|
|
En línea
|
|
|
|
v4char
Desconectado
Mensajes: 61
|
Si te vale esto #include <stdio.h>
#define MULTIPLOS 20 #define TOMADOS 5
int multiplos(int paso) { return (paso*TOMADOS); }
int main() { int i,paso; paso = 1; for(i=0;i<MULTIPLOS;i++) { printf("%i\n" ,multiplos(paso)); paso++; } return 0; }
|
|
« Última modificación: 20 Julio 2015, 02:03 am por v4char »
|
En línea
|
|
|
|
user-marcos
Desconectado
Mensajes: 159
|
Esta es una solución según las restricciones que tienes, pero te la he hecho en c++. #include <iostream> #include <sstream> #include <cstring> using namespace std; const int MULTIPLO = 5; const int RANGO = 20; string multiplos() { stringstream flujo; for(int i=0 ; i < RANGO; i++) { if(i < RANGO-1) flujo << i*MULTIPLO << ", "; else flujo << i*MULTIPLO << '.'; } return flujo.str(); } int main() { cout << multiplos() << endl; }
Hay otra manera de hacerlo, mediante el uso de vectores. que tiene mucha relación con los registros, creo que no te dejarán usarlo pero te lo pongo de igual modo. #include <iostream> #include <vector> using namespace std; const int MULTIPLO = 5; const int RANGO = 20; vector <int> multiplos() { vector <int> NumMult; for(int i = 0 ; i < RANGO; i++) { NumMult.push_back(MULTIPLO*i); } return NumMult; } int main() { for (int i = 0; i < multiplos().size(); i++) { cout << multiplos()[i] << endl; } }
Si estas empezando con la programación creo que la mejor solución es: Si te vale esto #include <stdio.h>
#define MULTIPLOS 20 #define TOMADOS 5
int multiplos(int paso) { return (paso*TOMADOS); }
int main() { int i,paso; paso = 1; for(i=0;i<MULTIPLOS;i++) { printf("%i\n" ,multiplos(paso)); paso++; } return 0; }
|
|
« Última modificación: 20 Julio 2015, 12:08 pm por user-marcos »
|
En línea
|
|
|
|
v4char
Desconectado
Mensajes: 61
|
Esta es una solución según las restricciones que tienes, pero te la he hecho en c++. #include <iostream> #include <sstream> #include <cstring> using namespace std; const int MULTIPLO = 5; const int RANGO = 20; string multiplos() { stringstream flujo; for(int i=0 ; i < RANGO; i++) { if(i < RANGO-1) flujo << i*MULTIPLO << ", "; else flujo << i*MULTIPLO << '.'; } return flujo.str(); } int main() { cout << multiplos() << endl; }
Hay otra manera de hacerlo, mediante el uso de vectores. que tiene mucha relación con los registros, creo que no te dejarán usarlo pero te lo pongo de igual modo. #include <iostream> #include <vector> using namespace std; const int MULTIPLO = 5; const int RANGO = 20; vector <int> multiplos() { vector <int> NumMult; for(int i = 0 ; i < RANGO; i++) { NumMult.push_back(MULTIPLO*i); } return NumMult; } int main() { for (int i = 0; i < multiplos().size(); i++) { cout << multiplos()[i] << endl; } }
Yo a tanto no llego. Eso es demasiado nivel para mi.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Variables globales en programas modulares
Programación C/C++
|
Shon
|
3
|
3,694
|
11 Septiembre 2010, 19:33 pm
por Horricreu
|
|
|
¿determinar multiplos?
« 1 2 »
Programación C/C++
|
Bledniss
|
17
|
34,749
|
27 Abril 2011, 20:26 pm
por RyogiShiki
|
|
|
Escribir todos los numero multiplos de B que estan en A
Programación C/C++
|
luisgonzalo4
|
1
|
2,157
|
30 Octubre 2014, 22:42 pm
por leosansan
|
|
|
múltiplos del primer número que sean menores que el segundo
Programación C/C++
|
RGT
|
3
|
2,520
|
16 Abril 2015, 12:00 pm
por do-while
|
|
|
Redondear Multiplos
.NET (C#, VB.NET, ASP)
|
CM2ARY
|
3
|
7,373
|
13 Agosto 2017, 02:11 am
por CM2ARY
|
|