输入两个长度相同的一维数组 将下标相同的元素相乘 放入另一个数组中
时间: 2024-12-11 21:40:46 浏览: 11
当你需要输入两个长度相同的一维数组,比如`array1`和`array2`,并将对应位置的元素相乘,放入一个新的数组`result`中,你可以这样做:
```c
#include <stdio.h>
#include <stdlib.h> // 包含malloc,以便动态分配内存
#define MAX_SIZE 100 // 设置最大数组大小,可以根据实际需求调整
int* multiplyArrays(int* array1, int* array2, int size) {
int* result = (int*) malloc(size * sizeof(int)); // 动态分配存储结果的空间
if (!result) {
printf("Memory allocation failed.\n");
return NULL;
}
for (int i = 0; i < size; i++) {
result[i] = array1[i] * array2[i]; // 相乘并存储在result数组
}
return result;
}
int main() {
int array1[MAX_SIZE], array2[MAX_SIZE];
int size;
printf("Enter the length of arrays (max %d): ", MAX_SIZE);
scanf("%d", &size);
// 从用户那里获取输入并验证数组长度
if (size > MAX_SIZE) {
printf("Size exceeds maximum allowed.\n");
return -1;
}
printf("Enter elements of array1:\n");
for (int i = 0; i < size; i++) {
scanf("%d", &array1[i]);
}
printf("Enter elements of array2:\n");
for (int i = 0; i < size; i++) {
scanf("%d", &array2[i]);
}
int* result = multiplyArrays(array1, array2, size);
if (result) {
printf("Resulting array: \n");
for (int i = 0; i < size; i++) {
printf("result[%d] = %d\n", i, result[i]);
}
free(result); // 释放内存
} else {
// 处理内存分配失败的情况
}
return 0;
}
```
在这个程序中,`multiplyArrays`函数接收两个输入数组和它们的长度,然后创建一个新的数组`result`来存储乘积。在主函数中,首先读取用户输入的数组长度和元素,然后调用该函数并将结果打印出来。记得在结束时释放动态分配的内存。
阅读全文