ayuda dev c ++

Iniciado por LUNEMESIS, 13 Mayo 2011, 05:43 AM

0 Miembros y 1 Visitante están viendo este tema.

LUNEMESIS

hol amigos quisiera que me ayudaran con este programa me podrian decir el error de este


#include<stdio.h>
#include<stdlib.h>
#include<math.h>//se utilizo math ya que se utilizo la raiz(sqrt) y las potencias(pow)
main()
{//inicio de main
int A[3],B[3],i,a;//vectores A y B declarados con arreglos
char var,s,S,opcion;
//MENU
system("cls");
printf("\t\tPROGRAMA QUE PIDE DOS VECTORES Y REALIZA LAS SIGUIENTES OPERACIONES");
printf("\n\n\t\t-1-SUMA VECTOR A y B");
printf("\n\t\t-2-MODULO DEL VECTOR A");
printf("\n\t\t-3-MODULO DEL VECTOR B");
printf("\n\t\t-4-PRODUCTO PUNTO DEL VECTOR A y B");
printf("\n\t\t-5-PRODUCTO CRUZ DE A y B\n\n");
//ya que el usuario ira metiendo los valores se utiliza un for para cada vector
for (i=0;i<3;i++)
{
printf("\n\t\tValor No.%d del vector A entero ",i);
scanf("%d",&A);
}
for (i=0;i<3;i++)
{
printf("\n\t\tValor No.%d del vector B entero ",i);
scanf("%d",&B);
}
printf("\n\n\t\tOperacion a realizar ");
scanf("%d",&a);
switch(a)
{//inicio del switch
case 1:
printf("\n\t\t\tA+B=(%d,%d,%d)\n\n",A[0]+B[0],A[1]+B[1],A[2]+B[2]);
break;
case 2:
printf("\n\t\t\t|A|=%f",sqrt((pow(A[0],2))+(pow(A[1],2))+(pow(A[2],2))));
break;
case 3:
printf("\n\t\t\t|B|=%f",sqrt((pow(B[0],2))+(pow(B[1],2))+(pow(B[2],2))));
break;
case 4:
printf("\n\t\t\tA°B=%d",A[0]*B[0]+A[1]*B[1]+A[2]*B[2]);
break;
case 5:
printf("\n\t\t\tAxB=(%d)i-(%d)j+(%d)k",(A[1]*B[2])-(A[2]*B[1]),(A[0]*B[2])-(A[2]*B[0]),(A[0]*B[1])-(A[1]*B[0]));
break;
default:
printf("\n\t\tNo es correcta tu opcion\n\n");
}//fin de switch
/*el usuario respondera a la pregunta y dependiento de esta
se terminara el programa o se borrara la pantalla*/
printf("\n\n\t\tDesea que se realice otra opcion (Y o N)\?\t");
scanf("%s",&var);
while(var=='Y');


system("PAUSE"); 
return 0;
}
//fin de main

Samael.Black

Bueno el problema esta en los scanf, donde pides al usuario introducir el valor del vector A y B... ya que no le das la posición donde se guardara el valor introducido... por ejemplo scanf(scanf("%d",&A[1]); hay le dices al copilador que el dato introducido sera guardado en el vector A en la posición 1... otro error es que estas declarando la variables de tipo char s,S,opcion; y no las estas utilizando...

Shell Root

#2
Como es un vector de 3 posiciones de tipo enterio, debes de especificar en que lugar debe de ir el valor que estais ingresando. Es decir,
Código (cpp,3,7) [Seleccionar]
for (i=0;i<3;i++){
printf("\n\t\tValor No.%d del vector A entero ",i);
scanf("%d", &A[i]);
}
for (i=0;i<3;i++){
printf("\n\t\tValor No.%d del vector B entero ",i);
scanf("%d",&B[i]);
}


Advertencia - mientras estabas leyendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.


--
Por otro lado deberías de identar el código es mucho más fácil de interpretarlo.
Código (cpp) [Seleccionar]
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main(){
int A[3], B[3], i, a;
char var, s, S, opcion;

system("clear");
printf("\t\tPROGRAMA QUE PIDE DOS VECTORES Y REALIZA LAS SIGUIENTES OPERACIONES");
printf("\n\n\t\t-1-SUMA VECTOR A y B");
printf("\n\t\t-2-MODULO DEL VECTOR A");
printf("\n\t\t-3-MODULO DEL VECTOR B");
printf("\n\t\t-4-PRODUCTO PUNTO DEL VECTOR A y B");
printf("\n\t\t-5-PRODUCTO CRUZ DE A y B\n\n");
for (i=0;i<3;i++){
printf("\n\t\tValor No.%d del vector A entero ",i);
scanf("%d", &A[i]);
}
for (i=0;i<3;i++){
printf("\n\t\tValor No.%d del vector B entero ",i);
scanf("%d",&B[i]);
}
printf("\n\n\t\tOperacion a realizar ");
scanf("%d",&a);
switch(a){
case 1:
printf("\n\t\t\tA+B=(%d,%d,%d)\n\n",A[0]+B[0],A[1]+B[1],A[2]+B[2]);
break;
case 2:
printf("\n\t\t\t|A|=%f",sqrt((pow(A[0],2))+(pow(A[1],2))+(pow(A[2],2))));
break;
case 3:
printf("\n\t\t\t|B|=%f",sqrt((pow(B[0],2))+(pow(B[1],2))+(pow(B[2],2))));
break;
case 4:
printf("\n\t\t\tA°B=%d",A[0]*B[0]+A[1]*B[1]+A[2]*B[2]);
break;
case 5:
printf("\n\t\t\tAxB=(%d)i-(%d)j+(%d)k",(A[1]*B[2])-(A[2]*B[1]),(A[0]*B[2])-(A[2]*B[0]),(A[0]*B[1])-(A[1]*B[0]));
break;
default:
printf("\n\t\tNo es correcta tu opcion\n\n");
}
printf("\n\n\t\tDesea que se realice otra opcion (Y o N)\?\t");
scanf("%s", &var);
while(var == 'Y');

system("PAUSE"); 
return 0;
}
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

LUNEMESIS

el problema es que cuando iega a la pregunta que si quiere realizar otra opcion el programa se queda trabado como luciono eso??????''

satu

Hola

Te falta el do del do-while

Breakbeat como forma de vida