naja eigentlich nicht, eine lösung wäre zb
Code
main()
{
Vector v1, v2;
Vector v3;
double skalar;
char op;
printf("1. Vektor eingeben: ");
scanf("%lf %lf %lf",&v1.x,&v1.y,&v1.z);
printf("Operator eingeben: ");
scanf("%c", &op);
if(op == '*')
{
printf("2. Skalar eingeben: ");
scanf("%lf",&skalar);
}
else
{
printf("2. Vektor eingeben: ");
scanf("%lf %lf %lf",&v2.x,&v2.y,&v2.z);
}
switch(op)
{
case '+': v3 = add(&v1, &v2);
printVector(&v3);
break;
case '-': v3 = sub(&v1, &v2);
printVector(&v3);
break;
case '*': v3 = mult(skalar, &v2);
printVector(&v3);
break;
case 'x': v3 = cross(&v1, &v2);
printVector(&v3);
break;
case '.': skalar = dot(&v1, &v2);
printf("%lf",skalar);
break;
default: printf("Falscher Operand!\n");
return 1;
}
Alles anzeigen
einen vektor braucht man auf jeden fall, der wird eingelesen, dann der operator, wenn der op * ist lesen wir nen skalar ein ansonsten einen zweiten vektor, rest bleibt gleich
das ganze setzt natürlich vorraus der benutzer gibt keinen müll ein sondern nur die gültigen operatoren
ich hab das flushall() weggelassen, weiß leider nicht wofür das gut ist, ich glaub man braucht es garnicht