3 Star 2 Fork 2

Zhaokang Wang/程序设计(一)课堂演示与实验课代码仓库

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
demo_vec_calc.c 1.78 KB
一键复制 编辑 原始数据 按行查看 历史
#include <stdio.h>
#include <math.h>
#define VECTOR_LENGTH 5
// 函数声明
extern void vec_calc(float x[], float y[], int N,
float *product, float *x_len, float *y_len,
float sum[]);
int main(void)
{
/* 读入数组x和y */
float x[VECTOR_LENGTH] = {0.0};
float y[VECTOR_LENGTH] = {0.0};
printf("Input vector x:\n");
int i = 0;
for (i = 0; i < VECTOR_LENGTH; i++)
scanf("%f", &x[i]);
printf("Input vector y:\n");
for (i = 0; i < VECTOR_LENGTH; i++)
scanf("%f", &y[i]);
// 准备函数参数
float product, x_len, y_len;
float sum[VECTOR_LENGTH] = {0.0};
// 调用函数
vec_calc(x, y, VECTOR_LENGTH,
&product, &x_len, &y_len, sum);
/* 输出计算结果*/
printf("x*y = %f\n", product);
printf("||x|| = %f\n", x_len);
printf("||y|| = %f\n", y_len);
printf("x+y = \n");
printf("(");
for (i = 0; i < VECTOR_LENGTH; i++)
printf("%f,", sum[i]);
printf(")\n");
return 0;
}
void vec_calc(float x[], float y[], int N,
float *product, float *x_len, float *y_len,
float sum[])
{
// 计算product
float prod_sum = 0.0;
int i = 0;
for(i = 0; i < N; i++)
prod_sum = prod_sum + x[i] * y[i];
*product = prod_sum; // 点积计算结果通过指针变量product返回
// 计算x的长度
float len_sum = 0.0;
for(i = 0; i < N; i++)
len_sum = len_sum + x[i] * x[i];
*x_len = sqrt(len_sum); // x长度通过指针变量x_len返回
// 计算y的长度
len_sum = 0.0;
for(i = 0; i < N; i++)
len_sum = len_sum + y[i] * y[i];
*y_len = sqrt(len_sum); // y长度通过指针变量y_len返回
// 计算x+y
for(i = 0; i < N; i++)
sum[i] = x[i] + y[i];
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/zkwang/c-programming-demo-code.git
git@gitee.com:zkwang/c-programming-demo-code.git
zkwang
c-programming-demo-code
程序设计(一)课堂演示与实验课代码仓库
main

搜索帮助