| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1074 人关注过本帖
标题:有一道题,大家帮忙看看呀
只看楼主 加入收藏
古墨生香
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-9-15
收藏
 问题点数:0 回复次数:12 
有一道题,大家帮忙看看呀
各位帮帮忙呀,小弟谢了先。题目如下:
给一个不多于5位的正整数,要求:(1)求出它是几位数;(2)分别打印每一位数字;(3)按逆序打印出各位数字,例如原数为321,应输出123。
搜索更多相关主题的帖子: 打印 321 正整数 
2005-10-22 15:55
古墨生香
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-9-15
收藏
得分:0 
我自己做的第一问,可是没法运行呀,请高手指点呀!
main()
{int x,y;
scanf("%d",&x);
switch(x)
{case'0<=x&&x<=9':printf("1");break;
case'10<=x&&x<=99':printf("2");break;
case'100<=x&&x<=999':printf("3");break;
case'1000<=x&&x<=9999':printf("4");break;
case'10000<=x&&x<=99999':printf("5");break;
default:printf("error\n");
}
}

2005-10-22 16:17
richard0415
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-10-20
收藏
得分:0 
case后面好像应该是常量表达式
2005-10-22 16:23
powerlong
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2005-10-22
收藏
得分:0 
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void main()
{int x;
char s[100];
scanf("%d",&x);
itoa(x,s,10);
int len = strlen(s);
printf("输入的是%d位数\n",len);
}
第一题!
2005-10-22 16:43
powerlong
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2005-10-22
收藏
得分:0 
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void main()
{int x;
char s[3];
scanf("%d",&x);
itoa(x,s,10);
int len = strlen(s);
printf("输入的是%d位数\n",len);
for(int i=0;i<len;i++)
 printf("第%d位是%c\n",i+1,s[i]);
 printf("逆续为:  ");
for(i=len-1;i>=0;i--)
 printf("%c",s[i]);
 printf("\n");
}
呵呵~做完了,刚学c一个月,还请多多指教!
2005-10-22 17:06
古墨生香
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-9-15
收藏
得分:0 
你用的是C++吧!我用的是TC没法运行你编的那个程序呀!

2005-10-23 23:49
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
收藏
得分:0 
对呀!TC好象没有头文件"string.h".

=×&D o I p R e E n C g T l X&×=
2005-10-24 00:05
socks
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2005-10-13
收藏
得分:0 
5楼的是标准的c语言。其中string.h用的是strlen函数,求字符串长度。stdlib.h用的是itoa()函数。这个函数的定义是itoa(int, char *, int),3个参数分别表示要转换的数字,转换后的字符串,和要转换数字的进制,必须在2-36间取值。其实这个问题用这个函数是最合适的,数字变成字符串之后求位数和逆序就很简单了。如果不想用这个函数,也可以用ASCII码+'0'的方法转换,就是麻烦一点

虔诚的初学者~~~
2005-10-24 00:20
socks
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2005-10-13
收藏
得分:0 
不用itoa()和strlen()函数可以这么做
#include <stdio.h>
void main()
{
 int x,i,j=0,k;
 char s[5];
 scanf("%d",&x);
 for(i=0;i<5,x>0;i++)
 {
  s[i]=x%10+'0';
  x/=10;
  j++;
 }
 printf("输入的是%d位数\n",j);
 for(i=j-1,k=1;i>=0;i--,k++)
  printf("第%d位是%c\n",k,s[i]);
  printf("逆续为:  ");
 for(i=0;i<j;i++)
  printf("%c",s[i]);
 printf("\n");
}

虔诚的初学者~~~
2005-10-24 00:34
powerlong
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2005-10-22
收藏
得分:0 
我也是从其他例子上看到的. 觉得还算可行!我用的是c++的编译器!
2005-10-24 16:09
快速回复:有一道题,大家帮忙看看呀
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012198 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved