CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

一个可爱的女孩要我帮忙做的东西 为了爱情 大家帮帮我

楼主yanyzheng(小正)2005-04-03 19:49:06 在 C/C++ / C++ 语言 提问

给一个不多于5位的正整数,要求:1   求出它是几位数;2   分别打印出每一位数字;3   按逆序打印出各位数字,例如原数为321,应输出123。      
   
  下面是我写的   大家看下  
  编译通过     不能执行     内存问题  
  #include   <iostream.h>  
  const   int   SIZE   =5;  
  int   fun1(int   s[])//求长度函数  
  {  
  int   i=0;  
  while(s[i]!='/0')  
  i++;  
  return   i;  
  }  
  int   fun2(int   p[],int   j)//求逆数  
  {  
  int   i=0;  
  int   t;  
  while(i<j)  
  {  
  t=p[i];p[i]=p[j];p[j]=t;  
  i++;j--;  
  }  
  return   p[SIZE];  
   
  }  
  void   main()  
  {  
  int   sh[SIZE],length;  
  int   sh2[SIZE];  
  cout<<"请输入一个不多于5位的正整数:";  
  cin>>sh[SIZE];  
   
  if(fun1(sh)>5)  
  {  
  cout<<"输入的数据不合要求,请重新输入:";  
  cin>>sh[SIZE];  
  }  
  length=fun1(sh);  
  cout<<"你输入的是:"<<length<<"位数!"<<endl;  
  for(int   i=0;i<=fun1(sh);i++)  
  cout<<"第"<<i+1<<"个数是:"<<sh[i]<<endl;  
  sh2[SIZE]=fun2(sh,fun1(sh));  
  cout<<"逆数为:"<<sh2<<endl;  
  }  
   
  问题点数:20、回复次数:39Top

1 楼lw1a2(一刀 现在改六点下班了:()回复于 2005-04-03 19:55:46 得分 0

一一;是男人就自己做Top

2 楼pcboyxhy(-273.15℃)回复于 2005-04-03 19:56:32 得分 5

char   str[10];  
  cin>>str;  
  char   *p=str;  
   
  while(*p)   cout<<*p++<<"     ";  
   
  cout<<endl;  
   
  while(p>=str)   cout<<*p--<<"     ";  
     
  Top

3 楼kobefly(科比--网络学习中)回复于 2005-04-03 20:05:14 得分 5

#include   <iostream.h>  
  #include   <string.h>  
   
  const   int   SIZE   =5;  
  int   fun1(char   s[])//&Ccedil;ó&sup3;¤&para;&Egrave;&ordm;&macr;&Ecirc;&yacute;  
  {  
  int   i=0;  
  while(s[i]!='\0')  
  i++;  
  return   i;  
  }  
  char*   fun2(char   p[],int   j)//&Ccedil;ó&Auml;&aelig;&Ecirc;&yacute;  
  {  
  int   i=0;  
  int   t;  
  while(i<j)  
  {  
  t=p[i];p[i]=p[j];p[j]=t;  
  i++;j--;  
  }  
  return   p;  
   
  }  
  void   main()  
  {  
  int   length;  
  char   sh[SIZE];  
  char   sh2[SIZE];  
  cout<<"&Ccedil;&euml;&Ecirc;&auml;&Egrave;&euml;&Ograve;&raquo;&cedil;&ouml;&sup2;&raquo;&para;à&Oacute;&Uacute;5&Icirc;&raquo;&micro;&Auml;&Otilde;&yacute;&Otilde;&ucirc;&Ecirc;&yacute;:";  
  cin>>sh;  
   
  if(fun1(sh)>5)  
  {  
  cout<<"&Ecirc;&auml;&Egrave;&euml;&micro;&Auml;&Ecirc;&yacute;&frac34;&Yacute;&sup2;&raquo;&ordm;&Iuml;&Ograve;&ordf;&Ccedil;ó,&Ccedil;&euml;&Ouml;&Oslash;&ETH;&Acirc;&Ecirc;&auml;&Egrave;&euml;:";  
  cin>>sh;  
  }  
  length=fun1(sh);  
  cout<<"&Auml;&atilde;&Ecirc;&auml;&Egrave;&euml;&micro;&Auml;&Ecirc;&Ccedil;:"<<length<<"&Icirc;&raquo;&Ecirc;&yacute;!"<<endl;  
  for(int   i=0;i<fun1(sh);i++)  
  cout<<"&micro;&Uacute;"<<i+1<<"&cedil;&ouml;&Ecirc;&yacute;&Ecirc;&Ccedil;:"<<sh[i]<<endl;  
  strcpy(sh2,fun2(sh,length   -   1));  
  cout<<"&Auml;&aelig;&Ecirc;&yacute;&Icirc;&ordf;:"<<sh2<<endl;  
  }Top

4 楼kobefly(科比--网络学习中)回复于 2005-04-03 20:05:45 得分 0

靠  
   
  乱套了  
   
  中文的地方都是你自己的中文  
   
  Top

5 楼kozzii(double-double)回复于 2005-04-03 20:14:33 得分 0

int足够了Top

6 楼Salam2001(Upgrading : C++ and Data Structure ...)回复于 2005-04-03 20:21:23 得分 0

-_-!!   你还算是男人...  
  除非拿爱情作幌子...  
  这么简单的问题...唉~~~女孩子就是好骗...Top

7 楼yanyzheng(小正)回复于 2005-04-03 20:26:08 得分 0

我刚学好不好~~  
      不要这样打击我的积极性好不好Top

8 楼MagicCarmack(MagiC++)回复于 2005-04-03 20:34:42 得分 0

楼上的解得好Top

9 楼showtime83(我要学习)回复于 2005-04-03 20:39:09 得分 0

这个题目不是很难,是老潭课后的习题,具体怎么做我记不太清了,反正只需用到前几章的简单内容就行了,不需要用到数组,如果你明天还没有做好的话,我把答案给你!  
   
  我c只学了一半,是个菜鸟,呵呵!要不现在就能告诉你答案了.Top

10 楼du51(郁郁思扬)回复于 2005-04-03 20:52:01 得分 5

#include   <iostream>  
  using   namespace   std;  
  int   fun1(int   n)                             //求长度函数  
  {  
  int   i=0;  
  if(n<=0)return   -1;  
          else  
  {  
  while(n){i++;n/=10;}  
  return   i;  
  }  
  }  
  void   fun2(int   p)                             //求逆数  
  {  
  cout<<"逆数为:";  
  while(p)  
  {  
  cout<<p%10;  
  p/=10;  
  }  
  cout<<endl;  
  }  
  void   fun3(int   p)                           //输出正序的数  
  {  
  static   int   count;  
  int   i=10000;  
  while(p)  
  {  
  if(p/i)  
  {  
  cout<<"第"<<(count++)+1<<"个数是:"<<p/i<<endl;  
  p=p%i;  
  }  
  else   i=i/10;  
  }  
  cout<<endl;  
  }  
  int   main()  
  {  
  int   n,length;  
  cout<<"请输入一个不多于5位的正整数:"<<endl;  
  cin>>n;  
  length=fun1(n);  
  if(length>5)  
  {  
  cout<<"输入的数据不合要求,请重新输入:";  
  cin>>n;length=fun1(n);  
  }  
  cout<<"你输入的是:"<<length<<"位数!"<<endl;  
  fun3(n);  
  fun2(n);  
  system("PAUSE");  
  return   0;  
  }Top

11 楼zhange000( 雄鹰飞翔)回复于 2005-04-03 21:07:16 得分 0

其实这个问题用数据结构的知识很容易做  
   用一个堆栈  
  就把你的所有问题都 解决了.Top

12 楼shine51151(美丽心情)回复于 2005-04-03 21:16:41 得分 5

#include   <iostream>  
  using   namespace   std;  
  #define   N   5  
   
  void   main()  
  {  
  int   a[N],num,i=0;  
   
  cout   <<   "Input   a   number   with   no   more   than   5   digits   :\t";  
   
  cin   >>   num;  
   
  while(num)  
  {  
  a[i++]=num%10;  
  num/=10;  
  }  
   
  cout   <<   "\nThe   number   you   put   has   "   <<   i   <<   "   digits   in   all";  
   
  cout   <<   "\n\nHere   with   position   from   high   to   low   all   the   digits   are   :\n\n";  
   
  for(int   j=i-1;j>=0;j--)  
  cout   <<   a[j]   <<   "\t";  
   
  cout     <<   "\n\nThe   number   with   its   digits   in   an   reverse   order   is   :\n\n";  
   
  for(int   k=0;k<i;k++)  
  cout   <<   a[k]   <<   "\t";  
   
  }  
   
   
  Top

13 楼warmage(严武)回复于 2005-04-03 21:17:18 得分 0

upTop

14 楼shine51151(美丽心情)回复于 2005-04-03 21:18:42 得分 0

定冠词an   改为a   ,见笑了Top

15 楼shine51151(美丽心情)回复于 2005-04-03 21:21:30 得分 0

#include   <iostream>  
  #include   <cstdlib>  
  using   namespace   std;  
  #define   N   5  
   
  void   main()  
  {  
  int   a[N],num,i=0;  
   
  cout   <<   "Input   a   number   with   no   more   than   5   digits   :\t";  
   
  cin   >>   num;  
   
  while(num)  
  {  
  a[i++]=num%10;  
  num/=10;  
  }  
   
  cout   <<   "\nThe   number   you   put   has   "   <<   i   <<   "   digits   in   all";  
   
  cout   <<   "\n\nHere   with   position   from   high   to   low   all   the   digits   are   :\n\n";  
   
  for(int   j=i-1;j>=0;j--)  
  cout   <<   a[j]   <<   "\t";  
   
  cout     <<   "\n\nThe   number   with   its   digits   in   a   reverse   order   is   :\t";  
   
  for(int   k=0;k<i;k++)  
  cout   <<   a[k];  
   
  cout   <<   endl   <<   endl;  
   
  system("pause");  
   
  }  
   
   
  Top

16 楼shine51151(美丽心情)回复于 2005-04-03 21:26:40 得分 0

#include   <iostream>  
  #include   <cstdlib>  
  using   namespace   std;  
  #define   N   5  
   
  void   main()  
  {  
  int   a[N],num,i=0;  
   
  cout   <<   "Input   a   number   with   no   more   than   5   digits   :\t";  
   
  cin   >>   num;  
   
  while(num)  
  {  
  a[i++]=num%10;  
  num/=10;  
  }  
   
  cout   <<   "\nThe   number   you   put   has   "   <<   i   <<   "   digits   in   all";  
   
  cout   <<   "\n\nHere   with   position   from   high   to   low   all   the   digits   are   :\n\n";  
   
  for(int   j=i-1;j>=0;j--)  
  cout   <<   a[j]   <<   "\t";  
   
  cout     <<   "\n\nThe   number   with   its   digits   in   a   reverse   order   is   :\t";  
   
  for(int   k=0;k<i;k++)  
  cout   <<   a[k];  
   
  cout   <<   endl   <<   endl;  
   
  system("pause");  
   
  }Top

17 楼dearlulu(鹿鹿)回复于 2005-04-03 21:34:16 得分 0

大哥、mm:我也快毕业了,基础可以,较为熟练c,c++,可别人不要我,说没工作经验。没项目。先到小公司发展好还是找个较为轻松的非遍程工作自学好?  
  谢谢Top

18 楼dearlulu(鹿鹿)回复于 2005-04-03 21:42:44 得分 0

大哥、mm们:我也快毕业了,基础可以,较为熟练c,c++,可别人不要我,说没工作经验。没项目。先到小公司发展好还是找个较为轻松的非遍程工作自学好?  
  谢谢Top

19 楼net_fogprince(韶华)回复于 2005-04-03 23:14:37 得分 0

#include   <iostream>  
  int   length(int   n,int   *a)  
  {  
          int   i=0;              
          if   n<0   return   -1;  
  else   {  
                while(n){  
                                       
                                      a[i]=n%10;  
                                      n/=10;  
                                    i++;}  
                  return   i;  
            }  
  }  
  void   counter(int   *a,int   n)  
  {  
              int   i,tmp;  
    for(i=0;i<n;i++)  
  {  
            tmp=a[i];  
            a[i]=a[n-i-1];  
            a[n-i-1]=tmp;  
  }  
  }  
  main()  
  {  
  int   n,a[5];          
  int   length;  
  cin>>n;  
  length=length(n,a);  
  cout<<length;  
  for(int   i=0;i<length;i++)  
  cout<<a[i];  
  counter(a,length/2);  
  for(i=0;i<length;i++)  
  cout<<a[i];  
  }  
  Top

20 楼cocoy(椰子丫丫)回复于 2005-04-03 23:21:44 得分 0

找个小公司先赚点经验值的好,在工作中也比自学提的快Top

21 楼sangxiaoqiang(我是一只小虾米)回复于 2005-04-04 00:39:13 得分 0

使用C++中STL的栈结构(亦可使用自己实现的   栈结构),将各个数字打印出来,再依次入栈,求出栈长度,依次输出栈顶元素,一切OK了Top

22 楼antter(JiangMiao)回复于 2005-04-04 01:19:12 得分 0

#include   <iostream>  
  using   namespace   std;  
  void   main()  
  {  
  char   num[6];  
  int   n,i;  
  cin.getline(num,6);  
  cout<<"长度:"<<(n=strlen(num))<<endl;  
  for(i=0;i<n;i++)  
  cout<<"第"<<i+1<<"位:"<<num[i]<<endl;  
  cout<<"逆序输出:";  
  for(i=n-1;i>=0;i--)  
  cout<<num[i];  
  system("pause");  
  }Top

23 楼hawklxr(下虾米)回复于 2005-04-04 07:36:35 得分 0

#include<stdio.h>  
  #include<iostream.h>  
   
  void   main()  
  {  
        char   stack[2][7];  
        int   top1=-1,   top2=-1;  
         
        while((stack[0][++top1]=getchar())!='\n');  
        cout<<"这个数的位数为:   "<<top1<<endl;  
         
        while(top1>=0)   stack[1][++top2]=stack[0][top1--];  
        top1=top2;  
        //stack[1][top2]=stack[0][top1];  
         
        cout<<"顺序数为:   "<<endl;  
        while(top2>=0){   cout<<stack[1][top2--];}  
        cout<<"\n逆序数为:   "<<endl;  
        while(top1>=0){   cout<<stack[0][top1--];}  
        cout<<endl;  
         
  }Top

24 楼CppCD(卖女孩的小红帽)回复于 2005-04-04 08:08:56 得分 0

能否借来配我一晚。。。。。Top

25 楼wodeyouxian(人生如梦)回复于 2005-04-04 09:14:57 得分 0

#include<iostream>  
  #include<cstdlib>  
  using   namespace   std;  
   
   
  int   main()  
  {  
    char   str[10];  
    cout<<"请输入您的数字:\nnum=";  
    cin>>str;  
    char   *p=str;  
   
    int   lng;  
    lng=strlen(str);  
    cout<<"数据长度为:"<<lng<<endl;  
     
    cout<<"正序为:"<<endl;  
    while(*p)   cout<<*p++<<"     ";   //正序    
   
    cout<<endl;  
     
    cout<<"逆序为:"<<endl;  
    while(p>=str)   cout<<*p--<<"     ";//逆序    
     
    system("pause");  
     
    }  
   
   
  //借的上面的,蛮好的。可以输出你要的结果的.       win2k+dev-c++Top

26 楼skywgs(浪迹天涯)回复于 2005-04-04 09:24:50 得分 0

太EASY了,你要是这也不能亲自给她做,那她可不太高兴哦,她出这么EASY的题是想让你亲自做的,呵呵Top

27 楼latt(latt)回复于 2005-04-04 09:43:10 得分 0

如果是   int   类型,一个循环就能完成  
  把MM介绍给我吧Top

28 楼Iceguy(大侠龙卷风)回复于 2005-04-04 09:50:44 得分 0

汗……水过Top

29 楼suyun9329(WYSIWYG)回复于 2005-04-04 10:35:25 得分 0

呵呵,是三级网络的上机题吧Top

30 楼MeHawk(追梦之翼)回复于 2005-04-04 10:57:53 得分 0

可爱不是愚蠢的理由。Top

31 楼liumangpp(阿飞)回复于 2005-04-04 10:58:51 得分 0

晕倒  
   
  这样的问题应该是最开始学习c的新手的课程设计...  
   
  为什么没有女孩子找我问这种问题啊  
   
  老天不公啊。。。。Top

32 楼zq_benben(虚空)回复于 2005-04-04 11:29:23 得分 0

呵呵,   楼主还是努力学习吧,   以后争取不要被鄙视Top

33 楼showwecumt(眼皮)回复于 2005-04-04 12:08:44 得分 0

大家应该虚心点的好。  
  你们不觉得自己太浮了嘛?  
  问题没有大小难易之分。Top

34 楼nbamjzhldm()回复于 2005-04-04 13:36:44 得分 0

呵呵.楼主不好好学习...Top

35 楼getlow()回复于 2005-04-04 15:03:53 得分 0

其实,你直接和她说你不会做也没有什么所谓的,你现在帮她解了,那以后呢?   诚实的告诉她,你不会,也是一种勇气。Top

36 楼bluedodo(笑三少)回复于 2005-04-04 16:08:14 得分 0

楼主很幸福Top

37 楼jhpxf(我是一是小小鸟,想要飞却飞不高。)回复于 2005-04-04 16:35:49 得分 0

不是吧,这个问题好象VB里面很好做的啊,哈。。我不会C++,帮你顶顶吧Top

38 楼cuipy(崔鹏宇)回复于 2005-04-04 17:58:31 得分 0

什么女孩,你告诉我她的qq,我手把手教。Top

39 楼yanyzheng(小正)回复于 2005-04-04 18:57:24 得分 0

大家不要想多啦,也不要有非分一想,csdn上的人太热情啦,连准女朋友都要抢?  
  是不是程序员都生活在缺乏爱的空间中啊。哈哈  
  大家好好努力,不要为了工作放弃了所有  
   
  这个问题也许太简单啦,这么多人回答。  
  我随便给分啦,原谅我啦~!!Top

相关问题

  • 送什么东西给女孩子?
  • 给女孩们的爱情选择!
  • 女孩子最喜欢什么东西?什么东西让她听话???????
  • 专题调查:什么样的女孩子最可爱???
  • ==小虾新贴==^^别了,可爱的电脑城女孩
  • 我是这样诱骗可爱女孩子的
  • 失落的爱情(之客户版)(我们都是好女孩)
  • 失落的爱情(之网络版)(我们都是好女孩)
  • 蜘蛛的爱情:男孩和女孩的故事
  • 男孩和女孩苦涩的爱情,结局是无奈的……

关键词

  • top
  • fun1
  • cout
  • num
  • sh
  • using namespace std
  • length
  • str
  • void main
  • define

得分解答快速导航

  • 帖主:yanyzheng
  • pcboyxhy
  • kobefly
  • du51
  • shine51151

相关链接

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

广告也精彩

反馈

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