CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

一道程序员考试题目,请高手指教,不胜感激。

楼主xjzhangg(苹果)2003-09-02 21:58:18 在 C/C++ / C语言 提问

【函数说明】  
          设长正整数用数组存储,如有   k   位的长整数m用数组   a[]   存储:  
                m   =   a[k]*10(k-1)+a[k-1]*10(K-2)+……+a[2]*10+a[1]*1  
          并用a[0]存储长整数m的位数,即a[0]=k。  
          通常,存储长整数数组的每个元素只存储长整数的一位数字。长整数运算时,为了运算方便,  
  产生的中间结果的某位数字可能会大于   9。这时,就应调用本函数将它规整,使数组的每个元素  
  只存储长整数的一位数字。规整运算函数   formal(int   *a)   就实现这个特殊要求。  
  【函数】  
          void   formal(int   *a)  
          {     int   p;  
                for   (p   =   1;   p   <   a[0]   ||   a[p]   >=   10;   p++)   {  
                      if   (p   >=   a[0]   __(1)__;  
                      a[p+1]+   =   a[p]/10;     a[p]   =   __(2)__;  
                }  
                if   (p   >   a[0])   __(3)__;  
          }  
   
  我做的答案是:  
  1)a[p+1]=0;  
  2)a[p]=a[p]%10;  
  第三个不知道该怎么填,我想不通,P怎么能大于a[0]呢。前两个填的对不对,我也不知道。请高手指点,不胜感激。  
  问题点数:30、回复次数:4Top

1 楼lang2000()回复于 2003-09-02 22:20:59 得分 15

我认为1)、2)正确  
  3)a[0]++;  
  因为a[0]为长整数位数,如a[1]=12,a[0]=1  
  调用formal后,a[2]=1,a[1]=2,a[0]=2Top

2 楼xjzhangg(苹果)回复于 2003-09-02 22:28:10 得分 0

lang2000()   ,P怎么能大于a[0]呢.Top

3 楼diwaa(地娃)回复于 2003-09-02 22:32:56 得分 15

整个程序中没有改变a[0]的,但是a表示的数据   的位数是要增加的那就是当p>a[0]是,  
  所以第三个空应改变a[0]  
  3)a[0]=pTop

4 楼xjzhangg(苹果)回复于 2003-09-02 22:41:50 得分 0

明白了,谢谢两位Top

相关问题

  • 介绍几个好的程序员考试的题目网站。
  • 帮忙解决个2000程序员考试的题目
  • 程序员考试。。。
  • 程序员考试
  • 程序员考试
  • 程序员考试
  • 程序员考试
  • 程序员考试
  • 程序员考试
  • 程序员考试

关键词

  • 函数
  • 位数
  • 数组
  • 长整数
  • formal
  • 大于
  • 存储
  • 数字

得分解答快速导航

  • 帖主:xjzhangg
  • lang2000
  • diwaa

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo