C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

习题解答

Posted on 2006-03-27 08:51 我爱C 阅读(1321) 评论(3)  编辑 收藏 引用 所属分类: 疑难作业习题解答

5.7 给一个不多于5位的正整数,要求:①求他是几位数;②分别打印出每一位数字;③按逆序打印出各位数字。
参考程序:

main()
{   long int num;
     int  indiv,ten,hundred,thousand,ten_thousand,palce;/*分别代表个位,十位,百位,千位,万位和位数*/
    printf("please input a integer(0-99999):");
   scanf("%ld",&num);
  if(num>9999)
    place=5;
   else if(num>999)
    place=4;
  else if(num>99)
   palce=3;
  else if(num>9)
   place=2;
  else
   place =1;
printf("place=%d\n",place);
 ten_thousand=num/10000;
 thousand=(num-ten_thousand*10000)/1000;
 hundred=(num-ten_thousand*10000-thousand*1000)/100;
 ten=(num-ten_thousand*10000-thousand*1000-hundred*100)/10;
 indiv=num-ten_thousand*10000-thousand*1000-hundred*100-ten*10;
 switch(place)
   {case 5:printf("%d,%d,%d,%d,%d\n",ten_thousand,thousand,hundred,ten,indiv);
           printf("%d,%d,%d,%d,%d\n",indiv,ten,hundred,thousand,ten_thousand);
           break;
    case 4:printf("%d,%d,%d,%d\n",thousand,hundred,ten,indiv);
           printf("%d,%d,%d,%d\n",indiv,ten,hundred,thousand);
           break;
    case 3:printf("%d,%d,%d\n",hundred,ten,indiv);
           printf("%d,%d,%d\n",indiv,ten,hundred);
           break;
    case 2:printf("%d,%d\n",ten,indiv);
           printf("%d,%d\n",indiv,ten);
           break;
    case 1:printf("%d\n",indiv);
           printf("%d\n",indiv);
    }
}

Feedback

# re: 习题解答  回复  更多评论   

2006-10-12 11:30 by 人人
你偿

# re: 习题解答  回复  更多评论   

2006-12-08 20:14 by
那道编辑free函数清空一段内存的题(10.*)请教一下如何作啊,还有上一道编辑new函数开辟一段内存的题,我急啊.

# re: 习题解答[未登录]  回复  更多评论   

2008-06-04 00:25 by yy
用指针方法,写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理