Autor Tema: Tabla de multiplicar C

0 Usuarios y 1 Visitante están viendo este tema.

15 Julio, 2015, 04:55 pm
Leído 6249 veces

Estudiantee

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 423
  • Karma: +0/-0
  • Sexo: Masculino
Sé hacer el problema en el main sin modulares, ahora bien quiero aprender a hacerlo con modulares. Este es el programa pero solo me sale 100 al compilar.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
   int multiplos(int r){
   int i;
   for(i=1;i<=20;i++){
   r=5*i;
   }
   for(i=1;i<=20;i++){

    return(r);
   }




   }





   int main(void){
   int r,i;
   printf("%d\n",multiplos(r));



   system("pause");
   return(0);

   }
 
Si alguien me invita a forocoches, se lo agradecería.

15 Julio, 2015, 06:19 pm
Respuesta #1

ingmarov

  • Moderador Global
  • Mensajes: 5,423
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
Hola

Veo varios problemas

En la función principal declaras la variable "i" y nunca la usas.

Nunca asignas un valor a "r". ¿O sí? yo no lo veo.
En el módulo

Quieres que el módulo retorne varios valores y creo que solo podrá retornar un valor.
Puedes hacer varias cosas
Poner el segundo ciclo for en la función principal y que allí se llame a la función modular cuantas veces quieras.
O puedes hacer que la función multiplos imprima lo que quieras.
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

16 Julio, 2015, 11:48 am
Respuesta #2

Estudiantee

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 423
  • Karma: +0/-0
  • Sexo: Masculino
     He intentado lo que me has explicado, pero sigue sin salirme.
Si alguien me invita a forocoches, se lo agradecería.

16 Julio, 2015, 03:44 pm
Respuesta #3

ingmarov

  • Moderador Global
  • Mensajes: 5,423
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
Mira ese programa hecho en python (tablas de multilicar del 1 al 12)

Código: [Seleccionar]
def multi(n):                                           %Esta es la función secundaria
for i in range(10):                            %Este ciclo for es similar al tuyo solo que este asigna valores a i desde cero a "diez"   
print(n,"x",i+1,"=",n*(i+1))

for j in range(12):         %Esta la función principal
multi(j+1)


Y la salida del programa
Spoiler
Código: [Seleccionar]
1 x 1 = 1
1 x 2 = 2
1 x 3 = 3
1 x 4 = 4
1 x 5 = 5
1 x 6 = 6
1 x 7 = 7
1 x 8 = 8
1 x 9 = 9
1 x 10 = 10
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
2 x 10 = 20
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27
3 x 10 = 30
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
4 x 10 = 40
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
5 x 10 = 50
6 x 1 = 6
6 x 2 = 12
6 x 3 = 18
6 x 4 = 24
6 x 5 = 30
6 x 6 = 36
6 x 7 = 42
6 x 8 = 48
6 x 9 = 54
6 x 10 = 60
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
7 x 10 = 70
8 x 1 = 8
8 x 2 = 16
8 x 3 = 24
8 x 4 = 32
8 x 5 = 40
8 x 6 = 48
8 x 7 = 56
8 x 8 = 64
8 x 9 = 72
8 x 10 = 80
9 x 1 = 9
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 x 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81
9 x 10 = 90
10 x 1 = 10
10 x 2 = 20
10 x 3 = 30
10 x 4 = 40
10 x 5 = 50
10 x 6 = 60
10 x 7 = 70
10 x 8 = 80
10 x 9 = 90
10 x 10 = 100
11 x 1 = 11
11 x 2 = 22
11 x 3 = 33
11 x 4 = 44
11 x 5 = 55
11 x 6 = 66
11 x 7 = 77
11 x 8 = 88
11 x 9 = 99
11 x 10 = 110
12 x 1 = 12
12 x 2 = 24
12 x 3 = 36
12 x 4 = 48
12 x 5 = 60
12 x 6 = 72
12 x 7 = 84
12 x 8 = 96
12 x 9 = 108
12 x 10 = 120
[cerrar]

Revísalo, leer python es fácil.
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

16 Julio, 2015, 04:12 pm
Respuesta #4

luis

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 303
  • Karma: +1/-0
  • Sexo: Masculino
¿sabes lo que hace el return? devuelve el valor, y corta la ejecución. al ponerlo dentro de una iteración estás, en cierto sentido, destruyendo la iteración.


17 Julio, 2015, 04:18 pm
Respuesta #5

Estudiantee

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 423
  • Karma: +0/-0
  • Sexo: Masculino
Pero si quito el return no me va a devolver nada. Lo que quiero es que me devuelva los 10 valores.
Si alguien me invita a forocoches, se lo agradecería.

17 Julio, 2015, 04:24 pm
Respuesta #6

luis

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 303
  • Karma: +1/-0
  • Sexo: Masculino
Pero si quito el return no me va a devolver nada. Lo que quiero es que me devuelva los 10 valores.

Una función (digamos, pirulo()) comienza a ejecutarse cuando la invocás (ponés en alguna parte de tu texto "pirulo()"), y al encontrar un return devuelve algo, y termina de ejecutarse. es decir, solamente se ejecuta una vez. al ponerlo adentro de una iteración, solamente se ejecuta la primera iteración en forma parcial.

luis

17 Julio, 2015, 04:53 pm
Respuesta #7

Estudiantee

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 423
  • Karma: +0/-0
  • Sexo: Masculino
Entonces hago que la función no devuelva nada y la llamo mediante un bucle for para que me devuelva 10 valores?
Si alguien me invita a forocoches, se lo agradecería.

17 Julio, 2015, 04:57 pm
Respuesta #8

ingmarov

  • Moderador Global
  • Mensajes: 5,423
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
Entonces hago que la funcion no devuelva nada y la llamo mediante un bucle for para que me devuelva 10 valores?

Si devuelve nada (si es tipo void) ¿cómo te devolverá 10 valores?

Llámala con un ciclo "for"  de diez pasos desde la función principal y que en cada llamada te devuelva un valor




Pd. Cuida los tildes, también aplica para mí, a veces también me olvido a alguno.
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

17 Julio, 2015, 05:10 pm
Respuesta #9

Estudiantee

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 423
  • Karma: +0/-0
  • Sexo: Masculino
Crees que este ejercicio se puede hacer con funciones?



Procura en adelante no borrar todo tu mensaje, ponlo en un spoiler si quieres pero no lo borres.
Si alguien me invita a forocoches, se lo agradecería.