请完善程序,实现以下程序功能:从键盘上输入10个整数存入数组a中,通过指针将数组元素的值逆序输出。 输入样例: 1 3 5 7 9 2 4 6 8 0 输出样例: 0 8 6 4 2 9 7 5 3 1 #include <stdio.h> int main(void) {int k;for(k=1;k<=3;k++){ //该循环用于自动阅卷,请考生忽略 int a[10],i,*p; p= &a[0] ; //使得p指向a[0] for(i=0;i<10;i++) scanf("%d",p+ i ); //输入10个整数存入数组a中 p= &a[9] ; //使得p指向a[9] for(i=9; i>=0 ;i--) {printf("%d ",*p); //逆序输出数组a中的10个整数 *(p+i) ; //调整指针变量p的值,指向上一个数组元素 } printf("\n"); } //该循环用于自动阅卷,请考生忽略 return 0; }
时间: 2023-11-27 15:50:33 浏览: 629
完善后的程序如下:
```c
#include <stdio.h>
int main(void) {
int a[10], i, *p;
p = &a[0]; //使得p指向a[0]
for (i = 0; i < 10; i++)
scanf("%d", p + i); //输入10个整数存入数组a中
p = &a[9]; //使得p指向a[9]
for (i = 9; i >= 0; i--) {
printf("%d ", *p); //逆序输出数组a中的10个整数
p--; //调整指针变量p的值,指向上一个数组元素
}
printf("\n");
return 0;
}
```
注意到原程序中的 `*(p+i)` 是一个没有任何效果的语句,应该改为 `p--` 来将指针变量 p 指向上一个数组元素。另外,程序中的循环 `for(k=1;k<=3;k++)` 用于自动阅卷,可以删除。
相关问题
C语言 从键盘上输入10个整数存入数组a中,通过指针将数组元素的值逆序输出
好的,这是一个关于C语言的问题,我可以给你提供代码示例,帮助你解决这个问题。
```c
#include <stdio.h>
int main() {
int a[10];
int *p = a + 9; // p指向数组a的最后一个元素
// 从键盘输入10个整数存入数组a中
printf("请依次输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
// 通过指针将数组元素的值逆序输出
printf("逆序输出数组a的元素:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", *p);
p--; // 指针向前移动
}
return 0;
}
```
这段代码的思路是,首先定义一个数组a和指针p,指针p指向数组a的最后一个元素。然后通过循环从键盘输入10个整数存入数组a中。最后再使用指针p逆序输出数组a的元素。
希望这个代码示例能帮助你解决问题。如果有其他问题,可以继续向我提问哦。
从键盘上输入10个整数存入a中,通过指针将数组元素的值逆序输出代码
可以使用以下代码实现将数组元素逆序输出:
```c++
#include <iostream>
using namespace std;
int main() {
int a[10];
int *p = a;
cout << "请输入10个整数:" << endl;
for(int i = 0; i < 10; i++) {
cin >> *(p+i);
}
cout << "逆序输出数组元素:" << endl;
for(int i = 9; i >= 0; i--) {
cout << *(p+i) << " ";
}
return 0;
}
```
首先定义一个包含10个整数的数组a,和一个指向a的指针p。然后通过循环从键盘上输入10个整数存入数组a中。接下来使用循环将数组a中的元素逆序输出,即先输出a[9],再输出a[8],以此类推,最后输出a[0]。在循环中使用指针p访问数组a中的元素,通过*p来访问p所指向的地址的值。
阅读全文
相关推荐














