今天刷题碰到一个指针数组的题,解不出来,求大佬指点..
题:
将十个整数输入数组,求出其平均值并输出。
main( )
{int i,a[10],sum=0,p=______; /第一空*/
for(i=0;i<10;i++)
{ scanf(″%d″,p);sum+=______; /第二空/
printf(″%8.2fn″,______); /第三空/
}
求大佬指点,C语言的指针我学的云里雾里...
main( )
{int i,a[10],sum=0,p=a; /第一空*/
for(i=0;i<10;i++)
{ scanf(″%d″,p);sum+=*p++; /第二空/
}
printf(″%8.2fn″,sum/10.0); /第三空/
#include <iostream>
int main() {
int i, a[10], sum = 0, p = a[0];
for (int i = 0; i < 10; i++) {
scanf("%d", &p);
sum += p;
}
printf("%8.2fn", sum / 10.0);
return 0;
}
我给的内容是按照你给的例子写的,p给的就是指定数组中的任何一个单元格,当用户输入的时候放入到到指定的数组下标的地址上即可,每次都会覆盖内容,直接累加然后求平均数,输出结果是这样的:
1
2
3
4
5
6
7
8
9
10
5.50
15 回答8.4k 阅读
7 回答5.2k 阅读
6 回答6.9k 阅读✓ 已解决
8 回答6.2k 阅读
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
int
指针指向数组,可以是*p=a
,也可以是*p=&a[0]
,可能第二种方式更好理解,指针指向数组的第一个元素的地址,但是前面的方式更常见,它和函数指针的写法类似;sum+=*p++
,这里p
采用后缀自增,*p++
的意义是先复制p
,解引用p
(也就是拿到*p
),然后再移动指针p
;sum/10.0
,这里sum
是int
型,打印的是float
型,所以要除以10.0
,然后int
型会转换为float
计算;代码如下:
运行结果如下: