elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  restar, multiplicar y dividir elementos de un arreglo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: restar, multiplicar y dividir elementos de un arreglo  (Leído 11,799 veces)
minette1988

Desconectado Desconectado

Mensajes: 53


Ver Perfil
restar, multiplicar y dividir elementos de un arreglo
« en: 14 Marzo 2010, 20:19 »

Hola, estoy probando de multiplicar varios números enteros de un vector en C, pero cuando lo compilo el resultado que me da es 0 y cuando resto dos numeros enteros del vector me da -15. Cómo se haría para dividir dos numeros enteros lo he probado pero me da 0, Estos son mis programas: la resta, la multiplicación y la división. Gracias.

#include <stdio.h>
#include <stdlib.h>
#define TAM 4

int main(){
          int v[TAM];
          int i;
          int multi;

          multi=0;

          printf("Introduce los %d elementos a multiplicar: ",TAM);
 
          for(i=0 ; i<TAM ; i++){
              scanf("%d",&v);
              multi=multi * v;
          }
          printf("El resultado de la multiplicación es %d\n",multi);
}
---------------------------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#define TAM 2

int main(){
          int v[TAM];
          int i;
          int resta;

          resta=0;

          printf("Introduce los %d elementos a multiplicar: ",TAM);

          for(i = 0; i<TAM; i++){
             scanf("%d",&v);
             resta=resta - v;
          }
printf("El resultado de la resta es: %d\n",resta);
}
----------------------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#define TAM 2

int main(){
          int v[TAM];
          int i;
          int div;

          div=0;

          printf("Introduce los %d elementos a dividir: ",TAM);

          for(i = 0; i<TAM; i++){
             scanf("%d",&v);
             div=div / v;
          }
printf("El resultado de la división es: %d\n",div);
}


En línea

Castiblanco


Conectado Conectado

Mensajes: 2.449


THC is my cup of tea.


Ver Perfil WWW
Re: restar, multiplicar y dividir elementos de un arreglo
« Respuesta #1 en: 14 Marzo 2010, 20:56 »

El de la multiplicación estas dandole a "multi" el valor de 0, entonces siempre te va tirar 0, igual en el de divición, que siempre vas a dividir en 0.

Y otra cosa que veo por ejemplo en c me lío un poco voy a poner como seria para pedir los datos en c++

Código
  1. for (int i=0;i<5;i++)
  2. {
  3. cout<<"ingresa numero "<<i+1<<" del arreglo ";
  4. cin>>v[i]
  5. }
Ese es para pedir 5 números y organizarlos en el arreglo,

Ahora si quieres sumar esos números.

Código
  1. int suma = 0;
  2.  
  3. for (int i=0;i<5;i++)
  4. {
  5. suma += i;
  6. }
  7. cout<<"la suma de los arreglos es"<<suma;
  8.  

Creo que así anda, lo hice muy rápido y no tengo compilador a la mano.

Y los demás son lo mismo solo que con otro operador y en el caso de la multiplicación multi debe valer 1 al principio.

PD: me cuentas si te anda, sino revisamos ;)

Saludos...


« Última modificación: 14 Marzo 2010, 20:58 por Castiblanco » En línea

nap-buf

Desconectado Desconectado

Mensajes: 46



Ver Perfil
Re: restar, multiplicar y dividir elementos de un arreglo
« Respuesta #2 en: 14 Marzo 2010, 21:11 »

Hola que tal.
En la multiplicación te fallan dos cosas. Cuando haces scanf de &v deberías hacer scanf de &v, para indicar la posición del vector. Además inicializas multi a 0, y más abajo haces: multi=multi * v; y como vale 0, el resultado nunca variaría.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define TAM 4
  4.  
  5. int main(){
  6.          int v[TAM];
  7.          int i;
  8.          int multi=1;
  9.  
  10.          printf("Introduce los %d elementos a multiplicar: ",TAM);
  11.  
  12.          for(i=0;i<TAM;i++){
  13.              scanf("%d",&v[i]);
  14.              multi=multi * v[i];
  15.          }
  16.          printf("El resultado de la multiplicación es %d\n",multi);
  17.          return 0;
  18. }

En la resta te ocurre lo mismo al hacer el scanf. La resta puedes hacerla fuera, con otro bucle, primero haciendo que resta valga el primer valor del vector, (por ejemplo 10), y luego con el for vas restandole las demás posiciones. (en este caso solo resta 1 vez)
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define TAM 2
  4.  
  5. int main(){
  6.          int v[TAM];
  7.          int i;
  8.          int resta;
  9.  
  10.          resta=0;
  11.  
  12.          printf("Introduce los %d elementos a restar: ",TAM);
  13.  
  14.          for(i = 0; i<TAM; i++){
  15.             scanf("%d",&v[i]);
  16.          }
  17.          resta=v[0];
  18.          for(i=1;i<TAM;i++){
  19.  
  20.             resta= resta-v[i];
  21.  }
  22. printf("El resultado de la resta es: %d\n",resta);
  23. return 0;
  24. }
  25.  

La división puedes hacerla igual que la resta, además puedes usar float en lugar de int, para que te devuelva el resultado con la parte decimal:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define TAM 2
  4.  
  5. int main(){
  6.          float v[TAM];
  7.          int i;
  8.          float div;
  9.  
  10.  
  11.  
  12.          printf("Introduce los %d elementos a dividir: ",TAM);
  13.  
  14.          for(i = 0; i<TAM; i++){
  15.             scanf("%f",&v[i]);
  16.          }
  17.            div=v[0];
  18.          for(i=1;i<TAM;i++){
  19.  
  20.             div= div/v[i];
  21.  }
  22. printf("El resultado de la división es: %.3f\n",div);
  23. return 0;
  24. }
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines