Autor
|
Tema: separar funciones (Leído 3,492 veces)
|
ALONSOQ
Desconectado
Mensajes: 62
|
Hola, He redactado el siguiente codigo: hago una función que crea una matriz aleatoria, la suma, haya la media y dice cual es el mayor y cual el menor. Mi duda es ¿ como podría separarla en 4 funciones distintas: crea matriz, suma, media, mayor menor #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <time.h> int matriz_aleatoria (int m[] ); int main() { int matriz[3]; matriz_aleatoria(matriz); } int matriz_aleatoria (int m[]) { int i, s=0; float n; for (i=0; i<3;i++) { s=s+m[i]; } n = (float) s/3; if (m[0]>m[1]) if (m[0]>m[2]) { if (m[1]>m[2]) printf("el mayor es%d y el menor es%d", m [0], m [2]); else printf("el mayor es%d y el menor es%d", m [0], m [1]); } else printf("el mayor es%d y el menor es%d", m [2], m [1]); else if(m[1]>m[2]) { if (m[0]>m[2]) printf("el mayor es%d y el menor es%d", m [1], m [2]); else printf("el mayor es%d y el menor es%d", m [1], m [0]); } }
muchas gracias
|
|
|
En línea
|
|
|
|
Ferno
Desconectado
Mensajes: 375
|
Si tienes implementado el código de cada operación, sólo implementa las 4 funciones correspondientes pasando por parámetro la matriz a utilizar. Declara las variables locales correspondientes en cada función y retorna el valor!
Recomiendo que comiences por separar el code, si llegas a estancarte en algún momento con un error de compilación, postea nuevamente el code ^^
|
|
|
En línea
|
|
|
|
|
|
ALONSOQ
Desconectado
Mensajes: 62
|
¿Así? (no funciona) #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <time.h> int matriz_aleatoria (int m[]); int suma(int sum); int main() { int matriz[3]; int sum; matriz_aleatoria (matriz); suma (sum); } int matriz_aleatoria (int m[]) { int i; for (i=0;i<2;i++) { } } int suma (int s) { s= s + m[i]; }
|
|
|
En línea
|
|
|
|
durasno
Desconectado
Mensajes: 373
|
(no funciona) ¿¿que es lo q no funciona?? No te acostumbres a esperar la respuesta, ya que estoy seguro que si miras detenidamente el programa podrias resolver vos mismo los errores que tenes(simple consejo) Te marco lo q veo: 1º for (i=0;i<2;i++)
en la condicion usas i<2, tiene que ser i<3 (ya q tu arreglo es de [3]) 2º en la funcion suma() vos usas m[] ¿¿pero en que momento se lo pasas a la funcion??. Si s es tu variable que contiene la suma total, tenes que inicializar esa variable a 0(cero) ya que si no estas sumando "basura". Ademas para hacer la suma tenes que utilizar un for 3º A tus funciones las declaras para que devuelvan un int pero en ninguna haces un retorno (no es un error sino una mala implementacion) Saludos Saludos
|
|
|
En línea
|
Ahorrate una pregunta, lee el man
|
|
|
dato000
Desconectado
Mensajes: 3.034
|
¿¿que es lo q no funciona?? No te acostumbres a esperar la respuesta, ya que estoy seguro que si miras detenidamente el programa podrias resolver vos mismo los errores que tenes(simple consejo)
Toda la fucking razón, no esperes que te hagan la tarea, te ayudamos, pero fuck la vida que lo hacemos de voluntarios... Te dejo unas, Te recomiendo que leas atentamente como trabajar con arreglos, paso de referencias y variables locales y globales, y lee atentamente como trabajan las funciones, es muy importante eso si quieres saber de C/C++, JA! es importante para todos los lenguajes, pues tienen una lógica similar, pero no te preocupes viejo, es solo cuestión de trabajar y cogerle gusto a pasar horas en frente de un pc (o un pedazo de papel) resolviendo cosas como esta. Como dije, te dejo unas, la del menor y mayor las haces tu mi hermano. Hay varias cosas que puede que no termines de entender, solo es cuestión de preguntar, y leer, MUCHO/*hago una función que crea una matriz aleatoria, la suma, haya la media y dice cual es el mayor y cual el menor. Mi duda es ¿ como podría separarla en 4 funciones distintas: crea matriz, suma, media, mayor menor*/ #include <stdio.h> #include <stdlib.h> #include <time.h> /*Una buena forma de llamar un arreglo como parametro en una funcion, es separar tanto el arreglo como la cantidad de espacios/dimension que posee el mismo, para que pueda tomar los valores separados y trabajarlos en la función más facilmente.*/ void arreglo_aleatorio (int a[], int espacios); int suma(int a[], int espacios); int main() { int matriz[3]; printf("El Arreglo tiene los números: "); arreglo_aleatorio(matriz, 3); printf("\n\nLa Suma del Arreglo es: %d ", suma (matriz , 3)); printf("\n\nEl Promedio del Arreglo es: %d ", suma (matriz , 3)/3 ); return 0; } /*Arreglo creado, se deja void por que no retorna ningun valor, es una funcion que no devuelve valor es decir, no hay "return"*/ void arreglo_aleatorio (int m[], int espacios) { int i; for (i=0; i<espacios; i++) { } } /*Esta funcion es "int" porque devuelve un valor: la suma de los valores almacenados en el arreglo La estructura es la misma pues necesitamos los valores estandar del arreglo*/ int suma(int m[], int espacios){ int i; int suma = 0; for (i=0; i<espacios; i++) { //es igual usar suma = suma + m[i] suma += m[i]; } //Aqui la suma total de los elementos return suma; }
|
|
|
En línea
|
|
|
|
ALONSOQ
Desconectado
Mensajes: 62
|
Muchas gracias por tu ayuda y tu consejo
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
separar pistas mp3
Software
|
Maria Pia
|
1
|
3,120
|
16 Febrero 2003, 03:22 am
por Armando
|
|
|
Separar con el 3DMax
Diseño Gráfico
|
black
|
0
|
1,902
|
25 Febrero 2004, 20:39 pm
por black
|
|
|
separar avi de mp3
Multimedia
|
Florcita2005
|
2
|
1,936
|
18 Agosto 2005, 19:45 pm
por Songoku
|
|
|
[C] Problema con Struct en funciones que llaman a otras funciones
Programación C/C++
|
lipman
|
9
|
24,058
|
19 Mayo 2011, 23:39 pm
por Littlehorse
|
|
|
Separar el programa en funciones
Programación C/C++
|
PJ Yeah
|
6
|
2,701
|
9 Julio 2017, 23:59 pm
por PJ Yeah
|
|