永发信息网

#include<stdio.h> main() {int a[10].*p,*s; for(p=a;p-a<10;p++) scanf("%d",p); for

答案:2  悬赏:50  手机版
解决时间 2021-01-24 20:56
p++)
if(*p>*s) s=p;
printf("index=%d\n “, )
这个程序是求得数组元素所在的位置 并输出该最大值 在输出语句协代表最大值的输出项。
1请问第一步for(p=a;p-a<10;p++) 是做什么用的?
2这一步是什么意思 还有下一部for(p=a;p-a<10;p++) 是什意思 做什么用的
3p是什么 a是什么 p-a 是什么?
最佳答案
我先回答一下第三问:
3、a:数组 a[10] 的首地址指针(常量),即 a==&a[0]。p:int 类型指针。p-a:指针p到指针a的距离,例如:如果p指向a[5],那么 p-a==5。
1、第一步 for 循环的用途是:用 p 指针遍历数组 a[10]。
2、这一步的目的是输入十个整数存到数组 a[10]
1) p = a, 即 p = &a[0], 使指针p指向a[0]
2) p - a < 10, 判断指针的位置,当p指向a[0](数组a[10]的第1个数)时p-a==0,当p指向a[10](数组a[10]的第11个数)时p-a==10,此时p-a不小于10,退出循环。
3) scanf("%d",p) 将输入的整数存入p指向的地址中,例如:如果p指向a[0],就存入a[0]当中。
4) p++, p指向下一个整数,例如:如果之前p指向a[0],那么p就重新指向a[1]。
5) 继续执行 2)。
下一步的目的是找出这10个数中最大的数的地址:s,方法和第一步类似,用p遍历数组a[10],s默认指向a[0],if (*p>*s) s=p; 比较p地址指向的整数是否大于s地址指向的整数,如果是的话就把s指向p指向的整数。
全部回答
#include //引用文件 main()//主函数 { int a[10].*p,*s; for(p=a;p-a<10;p++) scanf("%d",p); //在数组a中,一次输入10个数 for(p=a,s=a;p-a<10;p++ ) //p,s都指向数组第一个元素的地址,p加一 if(*p>*s) //如果p指向的地址的数值大于s指向的地址的数值 s=p;//把p指向的地址赋值给s指向的地址,s也就是为了保存当前循环的最大值的地址 printf("index=%d\n",s-a);//输出数组中最大值在数组中的下标 }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
当x为何值时,4x-2与2+5x的值 (1)相等 (2
我win10下了cad2007但是没有东西打开 啊怎么
将记录仪(R)的两个电极置于某一条结构和功
怪物猎人P3银火龙出现条件
16乘以括号x减1的平方减去括号x加2的平方分解
新家吉祥家俱地址好找么,我有些事要过去
物业管理阶段是指业主大会选聘物业服务企业时
新东方台球俱乐部地址在什么地方,我要处理点
伦嘉生态健康家居地址在什么地方,想过去办事
2019年小学同步测控优化设计一年级数学上册人
沸点台球地址在什么地方,我要处理点事
马斯达尔位于西亚国家阿联酋的首都阿布扎比(
如图,△ABC中,∠C=90°,D在CB上,E为AB之
奥特曼可以无限变大吗
【名字英语怎么写】名字单词用英文怎么写
推荐资讯
切槽刀切长90的怎样编程序
某产品的加工需要经过5道工序(1)如果其中某
赤道直径比两极直径大,所以两极部分地球对空
有搞笑,查案的几部电视剧吗推荐一下古代的
成都公积金贷款一般需要多久才能办下来
同时,书看多了,我也会挑选,比较。比如说看
三星p5200官方固件哪里有
鱼友水族地址好找么,我有些事要过去
上海市青浦区有几个镇、乡、村?
据报道,某养鸭场在饲料中添加某种物质生产红
射洪环卫所旁就没有一个叫东方红的楼盘吗
甲烷能和溴气发生取代反应吗???
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?