C语言实现:通过指针变量实现,从键盘输入 10 个整数,然后逆序显示输出。
时间: 2023-06-10 18:06:34 浏览: 93
下面是 C 语言代码实现:
```c
#include <stdio.h>
int main() {
int arr[10]; // 定义一个长度为 10 的数组
int *p = arr; // 定义指向数组首元素的指针
// 从键盘输入 10 个整数
printf("请输入 10 个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", p + i);
}
// 逆序显示输出
printf("逆序输出:");
for (int i = 9; i >= 0; i--) {
printf("%d ", *(p + i));
}
return 0;
}
```
在这个程序中,我们使用了指针变量 `p` 来操作数组 `arr`。在输入数据时,我们使用 `p + i` 来访问数组的第 `i` 个元素;在逆序输出数据时,我们使用 `*(p + i)` 来访问数组的第 `i` 个元素。
相关问题
模仿c语言初学者,用指针变量指向数组元素的方法将一个整型数组a中的10个元素逆序输出,要求从键盘输入10个整数,数据输入、输出均用指针操作
好的,以下是代码实现:
```c
#include <stdio.h>
int main() {
int a[10];
int *p = a + 9; // 指针p指向数组a的最后一个元素
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &a[i]); // 从键盘输入10个整数
}
printf("逆序输出:\n");
while (p >= a) { // 从后往前遍历数组a
printf("%d ", *p); // 输出当前指针所指向的元素
p--; // 指针p向前移动一位
}
return 0;
}
```
运行结果如下:
```
请输入10个整数:
1 2 3 4 5 6 7 8 9 10
逆序输出:
10 9 8 7 6 5 4 3 2 1
```
用键盘上输入n(n<=20)个整数存入一维数组,用指针变量表示数组元素的方式将其逆序存放,然后输出。注意,实现该算法时不允许再定义数组。在c语言中
下面是实现该算法的C语言代码:
```c
#include <stdio.h>
int main()
{
int n, *p, temp;
int a[20];
printf("请输入n(n<=20):");
scanf("%d", &n);
printf("请输入%d个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
p = a; // 指针p指向a[0]
for (int i = 0; i < n / 2; i++) {
temp = *(p + i); // 交换a[i]和a[n-i-1]
*(p + i) = *(p + n - i - 1);
*(p + n - i - 1) = temp;
}
printf("逆序存放后的数组为:");
for (int i = 0; i < n; i++) {
printf("%d ", *(p + i));
}
return 0;
}
```
在这个程序中,我们使用了指针p来表示数组元素,而没有再定义一个数组。在逆序存放数组元素时,我们使用了指针的算术运算,即通过p+i来访问第i个元素。最后,我们再次使用指针p来输出逆序存放后的数组元素。