定义一个数组stu[10]存放10个学生的成绩,从键盘输入数据,要求用指针实现
时间: 2024-05-02 21:22:51 浏览: 94
定义一个有10个元素的数组,用其代表10个学生的考试成绩,从键盘输入10个成绩,统计平均成绩,输出高于平均成绩的序号。
可以这样实现:
```c
#include <stdio.h>
int main() {
int stu[10];
int *p = stu; // 定义指针p指向数组stu的首地址
// 从键盘输入数据
printf("请输入10个学生的成绩:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", p + i); // 指针移动i步指向第i个元素
}
// 输出成绩
printf("学生的成绩为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", *(p + i)); // 指针移动i步输出第i个元素的值
}
printf("\n");
return 0;
}
```
解释一下:
1. 定义一个`int`数组`stu`用于存放10个学生的成绩;
2. 定义一个指向数组`stu`首地址的指针`p`;
3. 通过指针`p`从键盘输入数据,利用指针移动实现从`stu[0]`到`stu[9]`的输入;
4. 通过指针`p`输出成绩,利用指针移动实现从`stu[0]`到`stu[9]`的输出;
5. 注意指针移动的语法,`p + i`表示移动指针`p`的`i`步,`*(p + i)`表示指向的是移动后的指针所指向的元素,即`stu[i]`。
阅读全文