问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VC疑问:程序运行结果

发布网友 发布时间:2022-12-30 06:36

我来回答

1个回答

热心网友 时间:2023-07-15 21:03

你犯了个初学者经典的错误,就是错误地认为函数参数是指针就是指针传递了.
错误发生在input函数,
int input(int *po,int *p,int j)
{ int loop=0,pp;
po=&k[j];
pp=*po;
while(pp>=1)
{*p=pp%10;
p++;
pp=pp/10;
loop++; }
return loop;
}
你这里的po对应的实参是main里面的&number,错误就在这里,你想做的事是让number=k[j], 但你写的却是po=&k[j]; 请注意,这里的po需要是个指针变量,但它仍然是值传递,即input函数里的形参po,实际上只是一个值为number地址的副本,你对它的修改,又怎么会影响到number的值呢?

正确的做法是将po改为int &,即引用传递,程序其他地方也要做相应修改:

int input(int &po,int *p,int j)
{ int loop=0,pp;
po=k[j];
pp=po;
while(pp>=1)
{*p=pp%10;
p++;
pp=pp/10;
loop++; }
return loop;
}

main里面
for(i=0;i<N;i++) /*小写转大写*/
{ver=input(number,array,i); //改成number
inv(array,ver);
exchange(name,ver,array,mname,number);
}

另外load函数里fscanf(fp,"%ld\n",k[i]);
改成fscanf(fp,"%ld\n",&k[i]);
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
湖北哪些学校有专升本 湖北哪些学校可以报专升本 华为mate7会不会卡 中央集权的本质 秦朝中央集权的实质是什么 秦朝建立专制主义中央集权制度的本质特征是 A改王为皇帝 B建立中央官制... 想生个女儿怎么备孕 怎样备孕生女孩7个方法 备孕怎样做才能生女孩 天津市国税局公务员面试成绩去哪儿查? 日语里面つ带俩点儿怎么念? 有首英文歌曲里面有“欧勒:词是什么呢??? 双冠龙和霸王龙的区别 双脊龙是以什么为食的? 双冠龙和双脊龙是一种龙吗? 这只恐龙叫啥名 双冠龙吃什么食物 下面哪种恐龙是食植性动物呢?A霸王龙B蜀龙C双冠龙 侏罗纪早期恶魔——双冠龙 为什么WPS文档中的文字间距那么大? 车贷万元系数4年系数是什么 车贷万元系数什么意思 如何注册不用好友辅助 如何使用海尔简自洁 枇杷叶煮水的功效与作用有哪些 欧阳娜娜为什么敢明晃晃地上阵“割韭菜”呢? 粉丝经济为什么割韭菜 iphone4没有越狱,忘记apple ID,怎么下载软件 iphone4没越狱如何下载软件? 聊聊《聊斋先生》剧中有哪些聊斋故事 长得君王带笑看 中的长的注音是什么 贞洁牌坊什么意思 贞洁牌坊是啥意思 解码金融思考电商行业受到哪些经济因素的影响如何影响怎样顺势而为和避免风 一些数据库文件要怎么打开啊 抖音的名字是红字怎么改 抖音昵称怎么设置颜色汉语和日语 我有一件针织衣服,穿上后拉住拉链,前面老是鼓起来,我该怎么让它不鼓呢? 华为荣耀和小米哪个手机好一点啊? 华为荣耀6与小米红米手机移动版哪个好 小米6和华为荣耀9让你选你选那个? 长信科技股研究报告?长信科技除权除息?长信科技可以长线吗? 梦见自己在背书去卖 电影发行价什么意思,上面说高于发行价要补差价。 学习做饭时,你最失败的一次操作是怎样的? 林允首次做蛋糕失败告终,没结婚的女孩子都不太会做饭吗? 孙千个人资料 孙千是谁 孙千身高多少? 孙千是赵丽颖公司的吗 太极福娃的眉毛采用什么笔法画的 螺丝生锈了拧不动咋办