diff --git a/task1.cpp b/task1.cpp new file mode 100644 index 0000000..a4ec56c --- /dev/null +++ b/task1.cpp @@ -0,0 +1,41 @@ +#include +#include +#include + +#define SIZE 1024 + +// 基础向量加法函数 +void vector_add(float* A, float* B, float* C, int size) +{ + for (int i = 0; i < size; ++i) + { + C[i] = A[i] + B[i]; + } +} + +int main() +{ + srand(time(NULL)); + + // 动态分配内存,并检查是否分配成功 + float *A = (float *)malloc(SIZE * sizeof(float)); + float *B = (float *)malloc(SIZE * sizeof(float)); + float *C = (float *)malloc(SIZE * sizeof(float)); + // 随机初始化,生成0到99之间的随机浮点数 + for (int i = 0; i < SIZE; i++) + { + A[i] = (float)(rand() % 100) / 100.0f; + B[i] = (float)(rand() % 100) / 100.0f; + } + + clock_t start = clock(); + vector_add(A, B, C, SIZE); + clock_t end = clock(); + + // 计算并输出向量加法的时间 + double time_spent = double(end - start) / CLOCKS_PER_SEC; + printf("使用基础的向量加法:\n当SIZE取%d时,初始向量加法时间:%lf秒\n", SIZE,time_spent); + + // 释放动态分配的内存 + free(A);free(B);free(C); +} \ No newline at end of file