如何给利用指针数组元素输入数据
时间: 2024-03-01 15:56:15 浏览: 73
要给利用指针数组元素输入数据,可以使用循环遍历数组,然后使用指针引用运算符 `*` 来访问数组中的元素。然后,使用标准输入函数(如 `scanf()`)来为每个元素赋值。以下是一个示例代码:
```c
#include <stdio.h>
int main() {
int arr[3];
int *ptr_arr[3] = {&arr[0], &arr[1], &arr[2]};
// 给每个元素输入数据
for (int i = 0; i < 3; i++) {
printf("请输入第%d个元素的值:", i+1);
scanf("%d", ptr_arr[i]);
}
// 输出数组的值
printf("数组的值为:");
for (int i = 0; i < 3; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在上面的示例代码中,首先定义了一个 `int` 类型的数组 `arr` 和一个指针数组 `ptr_arr`,指针数组中包含指向数组 `arr` 的每个元素的指针。然后,使用循环遍历指针数组,通过指针引用运算符 `*` 访问数组中的每个元素,并使用 `scanf()` 函数为其赋值。最后,输出数组的值。
相关问题
C++题目57:指针实现求均方差 利用指针求一组数据的均方差。定义数组a[10],输入数组长度n(n<=10)及n个数组元素,定义指针p指向数组a,利用指针p求这组数据的均方差,并输出。输出格式:小数点后保留两位。 【输入形式】 n n个数组元素 【输出形式】 均方差
好的,这道题很简单,下面是 C++ 的代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n;
double a[10], sum = 0, mean = 0, variance = 0;
double *p = a;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> *(p + i);
sum += *(p + i);
}
mean = sum / n;
for (int i = 0; i < n; i++) {
variance += pow(*(p + i) - mean, 2);
}
variance /= n;
cout << fixed << setprecision(2) << sqrt(variance) << endl;
return 0;
}
```
代码解析:
1. 定义整型变量 n 存储数组长度,定义双精度浮点型数组 a 存储 n 个数组元素,定义双精度浮点型变量 sum 存储数组元素的和,定义双精度浮点型变量 mean 存储数组的平均值,定义双精度浮点型变量 variance 存储均方差。
2. 定义双精度浮点型指针 p 指向数组 a,使用指针 p 输入 n 个数组元素,并计算数组元素的和。
3. 计算数组的平均值 mean。
4. 使用指针 p 计算均方差 variance。
5. 输出均方差,保留小数点后两位。
注意:本题需要使用数学库中的 pow 和 sqrt 函数,需要头文件 #include <cmath>,以及使用 fixed 和 setprecision 函数保留小数点后两位。
利用指针求一组数据的均方差。 定义数组 a [10],输入数组长度 n 及 n 个数组元素,定义指针 p 指向数组 a ,利用指针 p 求这组数据的均方差,并输出,输出格式:%.2f
下面是利用指针求一组数据的均方差的代码示例:
```c
#include <stdio.h>
#include <math.h>
int main()
{
int n, i;
double a[10], sum = 0, mean, variance, *p;
printf("请输入数组长度 n:");
scanf("%d", &n);
printf("请输入 %d 个数组元素:", n);
for(i = 0; i < n; i++)
{
scanf("%lf", &a[i]);
}
p = a; // 将指针 p 指向数组 a 的首地址
// 求和
for(i = 0; i < n; i++)
{
sum += *(p + i);
}
// 求平均数
mean = sum / n;
// 求方差
sum = 0;
for(i = 0; i < n; i++)
{
sum += pow(*(p + i) - mean, 2);
}
variance = sum / n;
// 求均方差
double standard_deviation = sqrt(variance);
printf("均方差为:%.2f\n", standard_deviation);
return 0;
}
```
运行结果示例:
```
请输入数组长度 n:5
请输入 5 个数组元素:1 2 3 4 5
均方差为:1.41
```
阅读全文