用c语言编写一个程序,已知一个整形数组,输入各元素的值,使用指针求该数组各元素之积
时间: 2024-05-09 21:16:21 浏览: 102
以下是使用指针求整形数组各元素之积的C语言程序:
```c
#include <stdio.h>
int main() {
int n, product = 1;
printf("请输入整形数组的长度: ");
scanf("%d", &n);
int arr[n];
printf("请输入整形数组的元素: ");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
int *p = arr;
for (int i = 0; i < n; i++) {
product *= *(p + i);
}
printf("该数组各元素之积为: %d\n", product);
return 0;
}
```
程序思路:
1. 首先,通过 `scanf` 函数获取整形数组的长度 `n`。
2. 然后,定义一个长度为 `n` 的整形数组 `arr`。
3. 接着,通过 `scanf` 函数逐个输入整形数组的元素。
4. 定义一个整形指针 `p` 指向整形数组的首元素。
5. 通过循环遍历整形数组,使用指针 `p` 访问各元素,并累乘各元素的值。
6. 最后,输出该数组各元素之积。
相关问题
c语言使用指针编写一个程序,输入10个整数存入数组,将数组元素逆置后输出。
下面是使用指针实现数组元素逆置的 C 语言程序:
```c
#include <stdio.h>
#define N 10
int main() {
int arr[N];
int *p = arr;
// 输入10个整数
printf("请输入10个整数:\n");
for (int i = 0; i < N; i++) {
scanf("%d", p + i);
}
// 数组元素逆置
for (int i = 0; i < N / 2; i++) {
int temp = *(p + i);
*(p + i) = *(p + N - i - 1);
*(p + N - i - 1) = temp;
}
// 输出逆置后的数组
printf("逆置后的数组为:\n");
for (int i = 0; i < N; i++) {
printf("%d ", *(p + i));
}
printf("\n");
return 0;
}
```
程序首先定义了一个包含 10 个元素的整型数组 `arr`,并定义了一个指向 `arr` 数组首元素的指针 `p`。接着通过循环输入 10 个整数,并使用指针 `p` 操作数组元素进行赋值。
之后,程序通过循环将数组元素逆置。具体来说,程序使用指针 `p` 操作数组元素进行交换。循环条件为 `i < N / 2`,即只需要交换数组前半部分和后半部分的元素即可。交换元素时,程序需要定义一个临时变量 `temp`,用于保存当前数组前半部分元素的值。
最后,程序通过循环输出逆置后的数组元素。输出时同样使用指针 `p` 操作数组元素进行访问和输出。
用c语言编写程序,用指针 实现,将n个整数存入一维数组中 求数组元素的平均值和数组元素之 积
好的,以下是使用指针实现将n个整数存入一维数组,并求出数组元素的平均值和数组元素之积的C语言代码:
```c
#include <stdio.h>
int main() {
int n;
printf("Enter the number of integers: ");
scanf("%d", &n);
int arr[n];
int *p = arr; // 指向数组的指针
printf("Enter %d integers: ", n);
for (int i = 0; i < n; i++) {
scanf("%d", p + i); // 通过指针读入数组元素
}
double sum = 0, product = 1;
for (int i = 0; i < n; i++) {
sum += *(p + i); // 求和
product *= *(p + i); // 求积
}
double avg = sum / n; // 平均值
printf("Average: %lf\n", avg);
printf("Product: %lf\n", product);
return 0;
}
```
这段代码同样是先从标准输入读入整数n,然后声明一个大小为n的整型数组arr,并通过指针p指向数组。接下来使用循环通过指针读入n个整数。接着使用另一个循环计算数组元素的平均值和数组元素之积。最后输出平均值和积。