代码拉取完成,页面将自动刷新
#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];
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。