Título: Duda al hacer un programa. Publicado por: LobateZZZ en 5 Abril 2013, 11:56 am Hola a todos, soy nuevo aqui, y necesito ayuda con una cosa de C. El caso es que el ejercicio consiste en hacer un programa de suma y resta de vectores tridimensionales, y ya casi lo tengo (o eso creo), pero el caso es que cuando ejecuto y meto los valores y hace la suma me da un número de la hostia, y además creo que me debería dar 3 números, cada uno por cada componente del vector.
Pego código: #include <stdio.h> #include <math.h> void suma(int vect1[3], int vect2[3], int vect3[3]); //int resta(int h, int i, int j, int k, int l, int m); int main(){ int a,i; int vect1[3], vect2[3], vect3[3]; printf("Indtroduzca la operación a realizar:\n"); printf("1) Suma de vectores\n"); printf("2) Resta de vectores\n"); scanf("%d",&a); if (a=1){ for(i=0;i<3;i++){ printf("Introduzca 3 valores para el vector 1:\n"); scanf("%d", &vect1); printf("Introduzca 3 valores para el vector 2:\n"); scanf("%d", &vect2); } void suma(vect1, vect2, vect3); printf("El resultado de la suma es: %d\n", vect3); } } void suma(int vect1[3], int vect2[3], int vect3[3]){ vect3[0]=vect1[0]+vect2[0]; vect3[1]=vect1[1]+vect2[1]; vect3[2]=vect1[2]+vect2[2]; } ¿Qué hago mal? Gracias a todos. Título: Re: Duda al hacer un programa. Publicado por: 85 en 5 Abril 2013, 14:42 pm Código: printf("El resultado de la suma es: %d\n", vect3); lo que pasa con esto: Código: int vect3[3]; es que el nombre 'vect3' significa una dirección en la memoria donde empieza el vector. para acceder a los 3 elementos de tu vector, lo hacés así: Citar vect3[0] vect3[1] vect3[2] Código: printf("%d %d %d\n", vect3[0],vect3[1],vect3[2]); de esa forma se accede a los valores en cada posición del vector. Título: Re: Duda al hacer un programa. Publicado por: rir3760 en 5 Abril 2013, 15:55 pm Ademas de la corrección que ya te indico 85 otras dos que debes hacer en tu programa son:
1) Utilizas el operador de asignación "=" cuando debes utilizar el de comparación "==": Código
2) Cuando llamas a una función no debes indicar su tipo de retorno, esta sentencia: Código Hay que cambiarla a: Código
Un saludo |