给一个不多于5位的正整数 要求

2016-06-16 14:45:25  分类: c程序设计第四版谭浩强课后答案  参与:

 给出一个不多于5位数的正整数;
(1)求出它是几位数;
(2)分别输出每一位数字; 
(3)按逆顺序输出各位数,例如原有数为123,应输出321

以下是此题的【c源代码】,需要C++源代码的请点击进入
#include <stdio.h>
#include <math.h>
int main()
{
  int num,indiv,ten,hundred,thousand,ten_thousand,place;      //分别代表个位,十位,百位,千位,万位和位数
  printf("请输入一个整数(0-99999):");
  scanf("%d",&num);
  if (num>9999)
       place=5;
  else  if (num>999)
       place=4;
  else  if (num>99)
       place=3;
  else  if (num>9)
       place=2;
  else place=1;
  printf("位数:%d\n",place);
  printf("每位数字为:");
  ten_thousand=num/10000;
  thousand=(int)(num-ten_thousand*10000)/1000;
  hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;
  ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;
  indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);
  switch(place)
    {case 5:printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);
     printf("\n反序数字为:");
     printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);
     break;
     case 4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);
     printf("\n反序数字为:");
     printf("%d%d%d%d\n",indiv,ten,hundred,thousand);
     break;
     case 3:printf("%d,%d,%d",hundred,ten,indiv);
     printf("\n反序数字为:");
     printf("%d%d%d\n",indiv,ten,hundred);
     break;
     case 2:printf("%d,%d",ten,indiv);
     printf("\n反序数字为:");
     printf("%d%d\n",indiv,ten);
     break;
     case 1:printf("%d",indiv);
     printf("\n反序数字为:");
     printf("%d\n",indiv);
     break;
      }
  return 0;
 }

来源:c程序设计第四版谭浩强课后答案

本文链接:http://www.wb98.com/c/post/tanhaoqiang_4.9.html

本站文章搜索:

<< 上一篇下一篇 >>

搜索

网站分类

Tags列表

赞助商链接