Dev - C++ - Ayuda con este programa

 
Vista:

Ayuda con este programa

Publicado por Horacio (8 intervenciones) el 11/03/2015 21:45:46
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <iostream>
#include <cmath>
using namespace std;
float Producto(float a[], float b[], int n);
float Norma(float a[], int n);
float Coseno(float a[], float b[], int n);
int main()
{
    int n,opcion;
    float a[100], b[100];
 
    cout<<"Ingrese 1 si desea calcular el producto escalar de dos vectores\n";
    cout<<"Ingrese 2 si desea calcular la norma de un vector\n";
    cout<<"Ingrese 3 si desea calcular el coseno del angulo entre dos vectores\n";
    cout<<"Ingrese cualquier otra tecla si desea salir\n";
    cin>>opcion;
 
    switch(opcion){
    case1:
         {cout<<"Ingrese el tamaño de los vectores\n";
         cin>>n;
         cout<<"El producto escalar es: "<<
         Producto(a,b,n);
    break;}
    case2:
          {cout<<"Ingrese el tamaño de los vectores\n";
          cin>>n;
          cout<<"La norma es: "<<
          Norma(a,n);
    break;}
    case3:
          {cout<<"Ingrese el tamaño de los vectores\n";
          cin>>n;
          cout<<"El coseno es: "<<
          Coseno(a,b,n);
    break;}
    default:
          cout<<"Ha elegido salir\n";
          break;}
    system("pause");
    return EXIT_SUCCESS;
}
float Producto(float a[], float b[], int n)
{
      float x,y,prod;
      for(int i=0;i<n;i++){
              cout<<"Posicion "<<i+1<<" del vector a = ";
              cin>>x;
             a[i]=x;
      for(int i=0;i<n;i++){
              cout<<"Posicion "<<i+1<<" del vector b = ";
              cin>>y;
              b[i]=y;
              prod+=a[i]*b[i];
      }
 
      }
      return prod;
}
float Norma(float a[], int n)
{
      float x,nor;
      for(int i=0;i<n;i++){
              cout<<"Posicion "<<i+1<<" del vector a = ";
              cin>>x;
              a[i]=x;
              nor+=a[i]*a[i];
              }
      return (sqrt(nor));
}
float Coseno(float a[], float b[], int n)
{
      float x,y,cos,prod,nor;
      for (int i=0;i<n;i++){
          cout<<"Posicion "<<i+1<<" del vector a = ";
          cin>>x;
          a[i]=x;
      for(int i=0;i<n;i++){
          cout<<"Posicion "<<i+1<<" del vector a = ";
          cin>>y;
          b[i]=y;
          prod+=a[i]*b[i];
          nor+=a[i]*a[i];
          cos+=((a[i]*b[i])/(sqrt(prod*nor)));
          }
 
          }
          return cos;
}

Queria saber que tiene de error esta codificacion que hice, ya que cuando lo ejecuto, ingreso la opcion, pero solo realiza la instruccion default,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con este programa

Publicado por agustin (522 intervenciones) el 11/03/2015 23:46:28
quita todas las llaves de los case que te estas liando. Deja solo el corchete que va tras el switch y el que va justo antes del system("pause"). Ademas el break de despues del default sobra. Haz esos cambios y prueba. El principal fallo que veo es que el system ese esta dentro del switch pero fuera de los cases y ademas en el default no abres corchetes pero despues si lo cierras. En los case no ne ponen llaves ya que estan delimitados por los cases y los breaks. No se ni como te compila.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar