[讨论]大家一起来做做这个题目,看谁的方法简单!
题目:给一个不多于5位的正整数,要求:(1)求出它是几位数
(2)分别输出每一位数字
(3)按逆序输出各位数字,例如原数是321,应输出123
用c语言实现!
----------------解决方案--------------------------------------------------------
咋没人发言阿
----------------解决方案--------------------------------------------------------
#include "stdlib.h"
#include "stdio.h"
#include "string.h"
int main()
{
char s[5];
int a;
scanf("%d",&a);
itoa(a,s,10);
a=strlen(s);
printf("%s %d\n",s,a);
for(;a>=0;a--)printf("%c ",s[a]);
return 0;
}
----------------解决方案--------------------------------------------------------
把那个for循环改成
while(a>=0)printf("%c ",s[a--]);
是不是比较快呢
----------------解决方案--------------------------------------------------------
回复:(iwfy)把那个for循环改成while(a>=0)print...
itoa(a,s,10);是什么意思啊,不大懂你程序的意思啊----------------解决方案--------------------------------------------------------
itoa(a,s,10); 头文件"stdlib.h" ,把整数转换成字符串 参数1整数 2字符串 3以10进制的形式转换
----------------解决方案--------------------------------------------------------
我的思路是用除、求模的方法输出各位数字,楼上大哥看这个方法如何实现啊,初学c,呵呵
----------------解决方案--------------------------------------------------------
够简洁了。
----------------解决方案--------------------------------------------------------
我这个怎么样:
#include <stdio.h>
void main()
{
char s[5],i,len;
while(len=strlen(gets(s)))
{
if(!len||len>5)
{
printf("Wrong number!\nInput again:");
continue;
}
printf("%d\n",len);
for(i=0;i<len;i++)
printf("%c ",s[i]);
printf("\n");
puts(strrev(s));
}
}
----------------解决方案--------------------------------------------------------
当然如果不用判断位数的话:
#include <stdio.h>
void main()
{
char s[5],i,len;
len=strlen(gets(s));
printf("%d\n",len);
for(i=0;i<len;i++)
printf("%c ",s[i]);
printf("\n");
puts(strrev(s));
getch();
}
----------------解决方案--------------------------------------------------------