| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7787 人关注过本帖, 1 人收藏
标题:题目是 从键盘输入一个不多于5位的整数,能显示出它是几位数,并按正反两种 ...
只看楼主 加入收藏
卡卡爱刷牙
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2009-8-3
结帖率:93.33%
收藏(1)
已结贴  问题点数:20 回复次数:11 
题目是 从键盘输入一个不多于5位的整数,能显示出它是几位数,并按正反两种顺序显示出各位数字
题目是 从键盘输入一个不多于5位的整数,能显示出它是几位数,并按正反两种顺序显示出各位数字
例如 输入整数12345
输出
n=5
12345
54321
c1=c2=c3=c4=c5=''这程序报错  我也不明白
case 5:c5=x%10+'0';x=x/10; 我总感觉+'0'可以不要

高手帮帮忙

书上答案
程序代码:
#include<stdio.h>
void main()
{char c1,c2,c3,c4,c5;            /*存放各位数字的变量*/
int n;                           /*存放整数的位数*/
long int x;                      /*整数x*/
c1=c2=c3=c4=c5='';
scanf("%ld",&x);
if(x>=10000)                    /*确定x是几位数*/
n=5;
else if(x>=1000)
n=4;
else if(x>=100)
n=3;
else if(x>=10)
n=2;
else n=1;
switch (n)                      /*获取x的各位数字*/
{case 5:c5=x%10+'0';x=x/10;
case 4:c4=x%10+'0';x=x/10;
case 3:c3=x%10+'0';x=x/10;
case 2:c2=x%10+'0';x=x/10;
case 1:c1=x%10+'0';
}
printf("n=%d\n",n);
printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);           /*顺序打印*/
printf("%c%c%c%c%c\n",c5,c4,c3,c2,c1);            /*逆序打印*/
}
搜索更多相关主题的帖子: 正反 整数 位数 顺序 数字 
2009-08-27 18:01
luoweijun
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:138
注 册:2009-6-12
收藏
得分:0 
这个程序运行没报错啊,那个空字符不能不要啊,定义c1的时候是定义的字符变量,其实完全用不着定义个字符变量吗,就来个整形就ok了
2009-08-27 20:58
卡卡爱刷牙
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2009-8-3
收藏
得分:0 
回复 2楼 luoweijun
还是不清楚为啥要整个c1=c2=c3=c4=c5=' '
另外下面case 5:c5=x%10+'0';x=x/10;里的'0'是干啥的呢?
书上没有
麻烦讲详细点
2009-08-27 22:31
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
digit = lg|_ NUM _| + 1   (向下取整 +1)

我就是真命天子,顺我者生,逆我者死!
2009-08-27 22:34
htyfhj
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-8-27
收藏
得分:0 
你哪个siwtch->case后面的子程序要用大括号括起来
2009-08-27 22:38
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:20 
报错倒没有。
c1=c2=c3=c4=c5='';  赋空值,初始化的意思。''单号里没有间隔。
case 5:c5=x%10+'0';x=x/10;     这里'0'是要有的,'0'ASCII码值为48,假如x%10余数是3,就是3+48,
                             等于51,对应ASCII表,字符3的ASCII值刚好是51.
                           整型换成字符型式。

[ 本帖最后由 UserYuH 于 2009-8-27 22:47 编辑 ]

努力—前进—变老—退休—入土
2009-08-27 22:45
pengxi432351
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2007-6-6
收藏
得分:0 
switch->case 后面的子程序要加{},还有{0}不能省掉,整形下就可以了
2009-08-28 21:56
starjun14
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:266
专家分:136
注 册:2009-4-26
收藏
得分:0 
2009-08-28 22:27
ljt0000mf
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:104
专家分:157
注 册:2009-7-4
收藏
得分:0 
NB程序,
比我写的好多了
2009-08-29 01:39
卡卡爱刷牙
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2009-8-3
收藏
得分:0 
回复 6楼 UserYuH
谢谢哦 那个问题我明白了  但那个c1=c2=c3=c4=c5=''我不在''里面加空格的话就报下面的错误
而且我还是不太明白为啥一定要这样定义 我感觉就c1=c2=c3=c4=c5也就能说明问题了
我用的是VC++6.0

--------------------Configuration: ex22 - Win32 Debug--------------------
Compiling...
11111111.cpp
G:\VC++6.0\[大家网]Visual.C++.[www.]\MSDev98\MyProjects\ex22\11111111.cpp(6) : error C2137: empty character constant
执行 cl.exe 时出错.
11111111.obj - 1 error(s), 0 warning(s)
2009-09-04 20:29
快速回复:题目是 从键盘输入一个不多于5位的整数,能显示出它是几位数,并按正反 ...
数据加载中...
 
   



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

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