永发信息网

C语言指针题的疑问???

答案:1  悬赏:50  手机版
解决时间 2021-05-17 22:16

题目:输入10个1位正整数存入一维整型数组,统计并输出其中出现次数最多的整数及其出现的次数。要求用指针变量处理数组元素。

main()
{static int a[10]={0},n[10],*p,*q;
for(p=a;p<a+10;p++)
scanf("%d",p);
for(p=a;p<a+10;p++)
n[*p]++;
q=p=n;
p++;
while(p<n+10)
{if(*p>*q)
q=p;p++;}
printf("%d %d\n",q-n,*q);} / q-n是次数出现最多的一位整数,*q是次数 /

程序无误,疑问一:为什么用q-n代表“次数出现最多的一位整数"?

疑问二:*q代表次数,但运行后*q为什么是0而不是出现的次数?

最佳答案
额。我认真看了下这个程序。。
{if(*p>*q) q=p;p++;}是将最大次数存入q
而。for(p=a;p<a+10;p++)n[*p]++;的意思是建立一个存放次数的数组。。
举个例子吧。比如我输入的是1 1 1 1 1 1 1 1 3 6
则n这个数组的情况是n[1]=8,n[3]=1,n[6]=1,其他的都是0.
这样再执行{if(*p>*q)q=p;p++;},则执行完后q的值就是&n[1]
n的值是&n[0]。q-n=&n[1]-&n[0]=1,1就是出现次数最多的数。
运行后*q的确是出现的次数。这个程序是对的。不过要注意看题目,输入的是10个1位正整数。不能有两位数的。。。嘿嘿。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么吸血鬼吸人血时爱从脖子下口
建安区许昌中国邮政储蓄银行(建安区支行)地址
红警3从网上下出来是个ex文件 怎么安装
山工艺专科咋样?在哪个校区
玩QQ农场为什么
急!我前两个月做过流产,不知道为什么月经一
DNF刷圖&PK狂戰怎樣+點
灯笼金鱼的诗句,一个女孩子坐在金鱼灯笼上的
谁有冒险岛小游戏单机版
浠水县黄冈常青商行地址在哪里啊
对老公彻底绝望的句子,对情人彻底死心了句子
浙江那个地方有到宜宾的火车没。?
人家都说我眼光差!爱上赵丽丽。这是为什么呢
当我发现我喜欢他德时候他已经不相信我,离开
茅箭区十堰金话筒文化传媒有限公司地址是什么
推荐资讯
QQ号码怎么老是掉线
悼念抗洪烈士的诗句,关于洪水和地震的生活例
不好意思是什么意思,梦幻西游什么是百晓生任
求金鱼火花平假名歌词
范伟天下无贼经典台词,在电影《天下无贼》中
现在诺基亚那一款比较好用
如果磁动机诞生是否标致着能量守恒定律被推翻
在地球可以看到仙女座吗
电影完美狙击在线观看 电影完美狙击下载
黄陂区武汉JPT这个地址在什么地方,我要去这
掇刀区荆门百年老街饺子馆地址在哪里啊
没有做过业务面试时自我介绍该怎么说?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?