运用C语言实现向量积

     今天久违的高中同学给我打了个电话,他的对象也是小学妹学的计算机,刚接触做一道简答算法题:用C语言实现向量积。哎,勉为其难的动手了。

     首先自然是找公式啊,高数放弃已久只能百度:

     已知:向量:u=Xu*i+Yu*j+Zu*k;

               向量:v=Xv*i+Yv*j+Zv*k;

               向量积:uxv=(Yu*Zv–Zu*Yv)*i+(Zu*Xv–Xu*Zv)*j+(Xu*Yv–Yu*Xv)*k。

      话休繁琐上代码:  

#define _CRT_SECURE_NO_WARNINGS
#include "stdafx.h"
#include

int _tmain(int argc, _TCHAR* argv[])
{
    float V1[3];
    float V2[3];
    printf("输入向量示意:1空格2空格3回车");
    printf("\r\n");
    printf("请输入向量V1(中间输入空格最后回车):");
    for (int i = 0; i <=2; i++)
    {
        scanf("%f", &V1[i]);
    }
    printf("向量V1是:(%.2fi,%.2fj,%.2fk)\r\n", V1[0], V1[1] ,V1[2]);
    printf("\r\n");
    printf("请输入向量V2(中间输入空格最后回车):");
    for (int i = 0; i <= 2; i++)
    {
        scanf("%f", &V2[i]);
    }
    printf("向量V2是:(%.2fi,%.2fj,%.2fk)\r\n", V2[0], V2[1], V2[2]);
    printf("\r\n");
    float i = (V1[1] * V2[2] - V2[1] * V1[2]);
    float j = (V1[2] * V2[0] - V2[2] * V1[0]);
    float k = (V1[0] * V2[1] - V2[0] * V1[1]);
    printf("乘积向量为:(%.2fi,%.2fj,%.2fk)\r\n", i, j, k);
    system("pause");
    return 0;
}

运行效果如图:

运用C语言实现向量积_第1张图片

如有错误,大佬轻点喷,中间还遇到一点小错误,我用的VS2013,写的scanf尽然报错:error C4996: 'scanf' this function or variable may be unsafe,查找之下解决:在 "解决方案资源管理器“ 中右键选中当前项目 -> 属性 -> C/C++ -> SDL checks,选 disable。再次感谢大佬。另外说一句,老同学的小学妹已经加我好友啦,啦,啦。哈哈没有的,我还是很正直的,有错误大家请指出。

你可能感兴趣的:(C语言)