Autor
|
Tema: Duda al hacer un programa. (Leído 2,239 veces)
|
LobateZZZ
Desconectado
Mensajes: 4
|
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.
|
|
|
En línea
|
|
|
|
85
|
printf("El resultado de la suma es: %d\n", vect3); lo que pasa con esto: 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í: vect3[0] vect3[1] vect3[2]
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.
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
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 "==": if (a = 1){ // Debe ser a == 1
2) Cuando llamas a una función no debes indicar su tipo de retorno, esta sentencia: void suma(vect1, vect2, vect3);
Hay que cambiarla a: suma(vect1, vect2, vect3);
Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Con que programa podria hacer eso
Diseño Gráfico
|
Dark Shadow
|
5
|
3,303
|
15 Septiembre 2005, 00:25 am
por MinusFour
|
|
|
hacer un programa bluetooth
« 1 2 ... 5 6 »
Hacking Mobile
|
caballeroantonio
|
56
|
56,652
|
3 Septiembre 2010, 08:19 am
por SirGraham
|
|
|
hacer programa Programa para almacenar fotos
« 1 2 »
Programación Visual Basic
|
ThonyMaster
|
11
|
8,965
|
2 Diciembre 2008, 20:58 pm
por ssccaann43 ©
|
|
|
[Duda] Como puedo hacer para saber en que S.O esta Corriendo el Programa?
Programación Visual Basic
|
agus0
|
6
|
3,486
|
20 Julio 2009, 10:06 am
por BlackZeroX
|
|
|
Duda sobre si se puede hacer un determinado programa
Software
|
r.minitti
|
4
|
2,558
|
19 Mayo 2011, 12:09 pm
por palomitero
|
|