:输入一个五位以内的正整数,(1判断它是一个几位数;(2请按序输出其各位数字;(3逆序输出其各位数字。

如题所述

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
void reverseString(char *str)
{
    int i,len;
    char ch;
    if(str == NULL)
        return;
    len=strlen(str);
    for(i=0;i<len/2;i++)
    {
        ch=str[i];
        str[i]=str[len-i-1];
        str[len-i-1]=ch;
    }
}
int main()
{
int n;
int i,len;
char str[10];
printf("输入一个五位以内的正整数: ");
scanf("%d",&n);
if(n<0)
{
printf("Input Error!\n");
exit(-1);
}
itoa(n,str,10);
len=strlen(str);
printf("它是一个%d位数\n",len);
printf("按序输出各个数字为: ");
for(i=0;i<len;i++)
printf("%c ",str[i]);
printf("\n");
reverseString(str);
printf("逆序输出各个数字为: ");
for(i=0;i<len;i++)
printf("%c ",str[i]);
printf("\n");
return 0;
}

示例运行结果:

输入一个五位以内的正整数: 12345

它是一个5位数

按序输出各个数字为: 1 2 3 4 5

逆序输出各个数字为: 5 4 3 2 1

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-26
按字符串读入处理,很简单。
#include <stdio.h>
int main( )
{
char s[20];
int i,L;
printf("input positive int number:\n");
scanf("%s", s);
L = strlen(s);
printf("1: %d digits\n",L);
printf("2: %s\n3: ",s);
for (i=L-1;i>=0;i--)printf("%c",s[i]);
return 0;
}
相似回答