C语言题目。 给一个正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字

C语言题目。 给一个正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数是321,应输出123。

/*
C语言题目。 给一个正整数,要求:
①求出它是几位数;
②分别打印出每一位数字;
③按逆序打印出各位数字
*/
#include<stdio.h>
void main(void)
{
int numCount(int);
void printNumber(int);
void printResNumber(int);
int num;
/********************/
if(scanf("%d",&num)!=1||num<0)
{
printf("输入不合格!!\n");
return;
}
/*********************/
printf("%d是个 %d位数\n打印各位数字: ",num,numCount(num));
printNumber(num);
printf("\n逆序各位数字: ");
printResNumber(num);
putchar('\n');
return;
}
/****************************/
int numCount(int num)
{
int count;
for(count=0;num>0;num/=10)count++;
return count;
}
void printNumber(int num)
{
if(num>0)
{
printNumber(num/10);
printf("%3d",num%10);
}
}
void printResNumber(int num)
{
if(num>0)
{
printf("%3d",num%10);
printResNumber(num/10);
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-04
#include<stdio.h>
#include<string.h>
int main()
{
    char n[100] ;
    int len , i;
    scanf("%s",n);
    len = strlen(s);
    printf("%d\n",len);
    for (i = 0 ; i < len ; ++i)
        printf("%c ",n[i]);
    putchar('\b');
    putchar('\n');
    for (i = len - 1 ; i >= 0 ; --i)
        printf("%c",n[i]);
    putchar('\b');
    return 0;
}

希望楼主能看明白

本回答被提问者采纳
第2个回答  推荐于2018-07-06
#include<stdio.h>
int main(void)
{
int n;
while(scanf("%d",&n)!=EOF)
{
int k=1,a[100];
while(n>0)
{
a[k]=n%10;
n/=10;
k++;
}
int f=0;
for(int i=1;i<k;i++)
{
if(f)
{
putchar(' ');
}
else
{
f=1;
}
printf("%d",a[i]);
}
f=0;
putchar('\n');
for(int i=k-1;i>0;i--)
{
if(f)
{
putchar(' ');
}
else
{
f=1;
}
printf("%d",a[i]);
}
putchar('\n');
printf("%d",k-1);
}
return 0;
}
望采纳

本回答被网友采纳
第3个回答  2018-07-05

#include<stdio.h>
int f(int n)
{
  int sum = 0;
  while(n > 0){
    sum+=n%10;
    printf("%d ",n%10);//倒序输出
    n = n/10;
    cnt++;//用于统计位数
    }
  printf("\n");
  printf("%d\n",cnt);//打印位数
  return sum;//将和返回给主函数
}
int main()
{
  int n;
  scanf("%d",&n);
  printf("%d\n",f(n));//输出和
}

相似回答