用指针输出数组中的数据
时间: 2024-02-16 14:05:38 浏览: 64
可以使用指针来输出数组中的数据,具体的代码如下:
```c
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int *p = arr; // 将数组的首地址赋值给指针变量
for (int i = 0; i < 5; i++) {
printf("%d ", *p); // 输出指针指向的元素
p++; // 指针移动到下一个元素
}
return 0;
}
```
这段代码中,我们首先定义了一个整型数组 `arr`,然后定义了一个指针变量 `p`,将数组的首地址赋值给它。接着使用 `for` 循环来输出数组中的元素,每次循环通过 `*p` 来访问指针指向的元素,然后将指针向后移动一个位置。这样就可以依次输出数组中的所有元素了。
相关问题
1、在main函数中,编写C++代码,实现以下要求: (1)通过new运算符动态创建一个长度为10的实型一维数组,返回的数组地址存储在指针变量p中,键盘输入任意10个数据存储在数组中; (2)写代码求出这10个数据的平均值,并分别统计输出数组中数据大于、等于和小于平均值的个数,并输出结果; (3)查找数组中的最大数据,并将其放在数组最前面,即0号单元; (4)使用指针变量p输出数组中的各元素。 (5)查找数组中的最小数据和位置,并输出结果; (6)键盘输入任意一个整数,查找该数据在数组中的下标并输出,如果找不到则输出“not find”。 (7)将数组转置,即 0号与9号交换,1号与8号交换...... (8)使用指针变量p输出数组中的各元素。
以下是实现要求的C++代码:
```cpp
#include <iostream>
using namespace std;
int main() {
float *p = new float[10]; // 动态创建长度为10的实型一维数组
float sum = 0; // 存储数组元素之和
float avg; // 存储平均值
int above = 0, equal = 0, below = 0; // 分别存储大于、等于和小于平均值的个数
int maxIndex = 0, minIndex = 0; // 存储最大和最小元素的下标
float temp; // 用于交换元素的临时变量
// 键盘输入数组元素
for (int i = 0; i < 10; i++) {
cout << "请输入第" << i+1 << "个数:";
cin >> p[i];
sum += p[i];
}
// 计算平均值和大于、等于、小于平均值的个数
avg = sum / 10.0;
for (int i = 0; i < 10; i++) {
if (p[i] > avg) above++;
else if (p[i] == avg) equal++;
else below++;
}
cout << "平均值为:" << avg << endl;
cout << "大于平均值的个数为:" << above << endl;
cout << "等于平均值的个数为:" << equal << endl;
cout << "小于平均值的个数为:" << below << endl;
// 查找最大元素并放在数组最前面
for (int i = 1; i < 10; i++) {
if (p[i] > p[maxIndex]) maxIndex = i;
}
temp = p[0];
p[0] = p[maxIndex];
p[maxIndex] = temp;
// 输出数组中的各元素
cout << "数组中的各元素为:";
for (int i = 0; i < 10; i++) {
cout << p[i] << " ";
}
cout << endl;
// 查找最小元素和位置
for (int i = 1; i < 10; i++) {
if (p[i] < p[minIndex]) minIndex = i;
}
cout << "最小元素为:" << p[minIndex] << ",位置为:" << minIndex << endl;
// 查找指定元素并输出下标
int num;
cout << "请输入要查找的整数:";
cin >> num;
int index = -1; // 存储查找到的下标
for (int i = 0; i < 10; i++) {
if (p[i] == num) {
index = i;
break;
}
}
if (index == -1) cout << "not find" << endl;
else cout << "该数在数组中的下标为:" << index << endl;
// 数组转置
for (int i = 0; i < 5; i++) {
temp = p[i];
p[i] = p[9-i];
p[9-i] = temp;
}
// 再次输出数组中的各元素
cout << "转置后数组中的各元素为:";
for (int i = 0; i < 10; i++) {
cout << p[i] << " ";
}
cout << endl;
delete [] p; // 释放内存
return 0;
}
```
以上代码中,我们使用new运算符动态创建了一个长度为10的实型一维数组,并将数组地址存储在指针变量p中。接着,我们通过键盘输入任意10个数据存储在数组中,并计算出了这10个数据的平均值,并分别统计输出了数组中数据大于、等于和小于平均值的个数。
然后,我们查找了数组中的最大数据,并将其放在数组最前面,即0号单元。接着,我们使用指针变量p输出了数组中的各元素,并查找了数组中的最小数据和位置,并输出了结果。
接下来,我们通过键盘输入任意一个整数,查找该数据在数组中的下标并输出,如果找不到则输出“not find”。最后,我们将数组转置,即0号与9号交换,1号与8号交换......,并再次使用指针变量p输出了数组中的各元素。
最后,记得释放内存,即使用delete运算符释放new运算符分配的内存空间。
c语言通过指针应用数组元素实现整型数组a数据的输入和输出。
可以通过指针应用数组元素来实现整型数组的输入和输出,具体实现步骤如下:
1. 定义一个整型数组a,和一个指向整型变量的指针p
2. 使用for循环遍历数组a的每一个元素,使用scanf函数输入每个元素的值
3. 使用for循环遍历数组a的每一个元素,使用指针p依次指向每个元素,并使用printf函数输出元素的值
代码如下:
```c
#include <stdio.h>
#define N 5
int main() {
int a[N], *p = a; // 定义整型数组a和指针p
int i;
// 输入数组a的每个元素的值
printf("请输入%d个整数:\n", N);
for (i = 0; i < N; i++) {
scanf("%d", p + i); // 使用指针p输入数组a的元素值
}
// 输出数组a的每个元素的值
printf("数组a的元素值为:\n");
for (i = 0; i < N; i++) {
printf("%d ", *(p + i)); // 使用指针p输出数组a的元素值
}
return 0;
}
```
在输入数组a的每个元素值时,使用指针p加上偏移量i来访问数组a的每个元素,相当于p[i],然后使用scanf函数输入元素值。在输出数组a的每个元素值时,同样使用指针p加上偏移量i来访问数组a的每个元素,相当于p[i],然后使用printf函数输出元素值。
阅读全文