永发信息网

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

答案:2  悬赏:0  手机版
解决时间 2021-12-24 03:48
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);//输出数组中最大值在数组中的下标 }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
银行手续费及佣金收入缴增值税吗
二级资质出图章是怎么印的
佛家的七情六欲指什么
顺义铁匠营有冼浴足疗吗
能使每个选民都有表达自己意愿的机会,选择自
属蛇的几月结婚
坚果投影仪多少钱一台
(1)4-|-6|-3×()(2)-32+(-1)2001÷+
填空题金属材料包括________以及它们的______
朗迪碳酸钙和三维亚铁可以一起吃吗 有什么不
没有工作能不能申请信用卡?
单选题当人误食铜、汞、铅等重金属盐时,应采
中通751817190859的货单到哪了
15款朗动能换无骨雨刷
雪地靴英语怎么说
推荐资讯
我的世界手机版自动商店npcjs怎么用
小偷怎么说英语
夜晚,我们抬头望月,看见月亮在云彩间穿行,
河面上漂浮的脏东西是什么
梦见死去的爸爸牙齿掉光了
在UEX交易所上有哪些币种?
小解放轻型厢式货车水箱水温过高是什么问题,
请问贵州大学三本交多少学费,怎么个交发?急
真皮鞋内里怎么清洗
医疗器械经营企业质量管理记录主要有哪些
那就算了用英语怎么说
辉腾空调是开着的空调盖板怎么打不开
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?