用rand 函数产生2个具有m个元素的向量,m由键盘输入,并求他们的内积,c语言
时间: 2024-09-11 08:12:34 浏览: 33
C 代码 应用蒙特卡罗方法来估计函数的积分 在 M 维单位球体的表面上.rar
在C语言中,可以使用`rand`函数来产生随机数,并存储在向量(数组)中。以下是一个简单的示例程序,它首先从键盘读取向量的长度`m`,然后产生两个具有`m`个元素的随机整数向量,并计算它们的内积:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int m, i;
double vector1[m], vector2[m], dotProduct = 0.0;
// 初始化随机数发生器
srand((unsigned)time(NULL));
// 输入向量的长度
printf("请输入向量的长度m: ");
scanf("%d", &m);
// 产生两个向量
printf("第一个向量:\n");
for (i = 0; i < m; i++) {
vector1[i] = rand() % 100; // 产生0到99之间的随机数
printf("%d ", vector1[i]);
}
printf("\n");
printf("第二个向量:\n");
for (i = 0; i < m; i++) {
vector2[i] = rand() % 100; // 产生0到99之间的随机数
printf("%d ", vector2[i]);
}
printf("\n");
// 计算内积
for (i = 0; i < m; i++) {
dotProduct += vector1[i] * vector2[i];
}
// 输出内积
printf("两个向量的内积是: %.2f\n", dotProduct);
return 0;
}
```
请注意,上述程序中使用`%d`格式化输出`int`类型,而在计算内积时,为了保证精度使用`double`类型。`rand()`函数生成的随机数范围是0到`RAND_MAX`,这里使用模运算`% 100`将随机数范围限制在0到99之间。另外,`srand((unsigned)time(NULL))`用于初始化随机数生成器,以确保每次程序运行时产生的随机数序列都不同。
阅读全文