新手请教C语言编程

给一个不我于五位的正整数,要求:1,求出它是几位数。2分别打印出每一位数字;3按逆序打印出各位数字,例如原数为321,应输出123,请求解答。本人正在自学C语言,好难。。... 给一个不我于五位的正整数,要求:1,求出它是几位数。2分别打印出每一位数字;3按逆序打印出各位数字,例如原数为321,应输出123,请求解答。本人正在自学C语言,好难。。。
虽然你的答案可以运行,虽然你是无聊才编。但我看不懂,注意我可是新手,拿出一个我看得懂的答案OK
展开
 我来答
无大智有大勇
2008-04-03 · TA获得超过441个赞
知道小有建树答主
回答量:502
采纳率:0%
帮助的人:329万
展开全部
我加了注释,你再看一下吧

思路是这样的,因为是正整数。所以可以除以10,直到这个数等于0
输出每一位就是求当前数除以10的余数。
如果逆序打印的话,就可以用数组实现(估计你还不知道堆栈,就不用堆栈实现了)
我这个也看不懂吗?加上头文件就可以运行了……
#include <stdio.h>
#include <stdlib.h>
int main()
{
int c;//存放输入的值
scanf("%d",&c);
int out[5];//存放每一位的值
int i = 0;
while ( c != 0 )
{
out[i] = c%10;//每一位的余数放入out数组,最先放入的是个位,最后放入的是万位
c/=10;//就是c=c/10;
i++;
printf("第%d位=%d;",i,out[i-1]);//这里的第?位是从个位开始说的
}
//比如1234这个数,1234/10 = 123(因为存放1234的是整型,小数点以后都被舍去,而不是进位)而1234%10=4,因为1234/10 = 123余4,这样就能计算每一位是什么并计算有多少位了。
printf("\n逆序为%d:",i);
int j = 0;
while ( j < i )
{
printf("%d",out[j]);
j++;
}
//因为第一个while循环把个位存入out[0]十位存入out[1]……所以这里从out[0]开始输出就是逆序了
}
huiandlun
2008-04-03
知道答主
回答量:38
采纳率:0%
帮助的人:0
展开全部
"给一个不我于五位的正整数",这是什么意思啊
是:“给一个不小于五位的正整数”吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jbyygao
2008-04-03 · 超过43用户采纳过TA的回答
知道答主
回答量:163
采纳率:0%
帮助的人:136万
展开全部
这个问题很多人问过 可以直接搜到答案的(是不多于对吧,例子321没超过五位)

#include<stdio.h>
void main()
{
int num,i=0,j;
int n[5];

while(true)
{
printf("请输入数字:");
scanf("%d",&num);
if(num>99999||num<0){ printf("重新输入!\n"); }
else{ break; }
}

while(num!=0)
{
printf("%d\t",num%10); //逆位打印
n[i]=num%10;
num=num/10;
i++;
}

printf("\n");
j=i;
while(j>=0)
{
printf("%d\t",n[j]); //顺位打印
}

printf("\n此数有%d位\n",i);
}

补充答案:
哇 更新好快
x没值
没初值,c语言是较严格的,如果是java,会默认值,c就会报错
咦,楼主把补充的问题划掉了阿,我的只是写的较长,应该不算难理解吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
快乐逐梦
2008-04-03 · TA获得超过200个赞
知道小有建树答主
回答量:164
采纳率:0%
帮助的人:0
展开全部
其实这道题还是比较简单的
我现在确实很无聊,就给你编一下吧
而且我也运行了,可以的

#include <stdio.h>
#include <string.h>

int main()
{
char str[100];

printf("请输入数字:");
gets(str);

int n=strlen(str);
printf("是%d位数字,逆序为:",n);

for(int i=n-1; i>=0; i--)
printf("%c",str[i]);

printf("\n");
return 0;
}

ps:
幸好今天我很无聊,给你解答一下,否则你给这么低的分数一般很少有人给你解答的
还有C语言没有C++方便、流行、好用的,特别是那个scanf又总是莫名的出错的,而cin很好用的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式