Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: LUNEMESIS en 13 Mayo 2011, 05:43 am



Título: ayuda dev c ++
Publicado por: LUNEMESIS en 13 Mayo 2011, 05:43 am
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


Título: Re: ayuda dev c ++
Publicado por: Samael.Black en 13 Mayo 2011, 07:02 am
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...


Título: Re: ayuda dev c ++
Publicado por: Shell Root en 13 Mayo 2011, 07:06 am
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
  1. for (i=0;i<3;i++){
  2. printf("\n\t\tValor No.%d del vector A entero ",i);
  3. scanf("%d", &A[i]);
  4. }
  5. for (i=0;i<3;i++){
  6. printf("\n\t\tValor No.%d del vector B entero ",i);
  7. scanf("%d",&B[i]);
  8. }

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
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4.  
  5. int main(){
  6. int A[3], B[3], i, a;
  7. char var, s, S, opcion;
  8.  
  9. system("clear");
  10. printf("\t\tPROGRAMA QUE PIDE DOS VECTORES Y REALIZA LAS SIGUIENTES OPERACIONES");
  11. printf("\n\n\t\t-1-SUMA VECTOR A y B");
  12. printf("\n\t\t-2-MODULO DEL VECTOR A");
  13. printf("\n\t\t-3-MODULO DEL VECTOR B");
  14. printf("\n\t\t-4-PRODUCTO PUNTO DEL VECTOR A y B");
  15. printf("\n\t\t-5-PRODUCTO CRUZ DE A y B\n\n");
  16. for (i=0;i<3;i++){
  17. printf("\n\t\tValor No.%d del vector A entero ",i);
  18. scanf("%d", &A[i]);
  19. }
  20. for (i=0;i<3;i++){
  21. printf("\n\t\tValor No.%d del vector B entero ",i);
  22. scanf("%d",&B[i]);
  23. }
  24. printf("\n\n\t\tOperacion a realizar ");
  25. scanf("%d",&a);
  26. switch(a){
  27. case 1:
  28. printf("\n\t\t\tA+B=(%d,%d,%d)\n\n",A[0]+B[0],A[1]+B[1],A[2]+B[2]);
  29. break;
  30. case 2:
  31. printf("\n\t\t\t|A|=%f",sqrt((pow(A[0],2))+(pow(A[1],2))+(pow(A[2],2))));
  32. break;
  33. case 3:
  34. printf("\n\t\t\t|B|=%f",sqrt((pow(B[0],2))+(pow(B[1],2))+(pow(B[2],2))));
  35. break;
  36. case 4:
  37. printf("\n\t\t\tA°B=%d",A[0]*B[0]+A[1]*B[1]+A[2]*B[2]);
  38. break;
  39. case 5:
  40. 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]));
  41. break;
  42. default:
  43. printf("\n\t\tNo es correcta tu opcion\n\n");
  44. }
  45. printf("\n\n\t\tDesea que se realice otra opcion (Y o N)\?\t");
  46. scanf("%s", &var);
  47. while(var == 'Y');
  48.  
  49. system("PAUSE");  
  50. return 0;
  51. }


Título: Re: ayuda dev c ++
Publicado por: LUNEMESIS en 13 Mayo 2011, 19:44 pm
el problema es que cuando iega a la pregunta que si quiere realizar otra opcion el programa se queda trabado como luciono eso??????''


Título: Re: ayuda dev c ++
Publicado por: satu en 13 Mayo 2011, 22:03 pm
Hola

Te falta el do del do-while