打酱油的


私信TA

用户名:1017563043

访问量:4786

签 名:

摸鱼使我快乐

等  级
排  名 935
经  验 3329
参赛次数 0
文章发表 73
年  龄 22
在职情况 学生
学  校 广州松田职业学院
专  业 计算机应用技术

  自我简介:

略略略略略略~~~~

解题思路:通过乘方再取余获得最高位和去掉最高位、动态控制位宽

注意事项:逐位输出用count(位数)作为判断表达式,别用 i(当前值) 

参考代码:

#include <stdio.h>
#include <math.h> 
int main(){
	int num,count=0;
	scanf("%d",&num);
	//	1、计数 
	for(int i=num;i;i/=10)
		count++;
	printf("%d\n",count);	
	
	//	2、逐位输出 ,用count判断要输出几位
	//	用 i则不会输出所有末位0,如 123000 只输出 1 2 3 
	for(int i=num;count;i%=(int)pow(10,count))
	//	动态控制位宽,由于--count,只剩下一位时,count=0,位宽 1 
		printf("%*d",count?-2:1,i/(int)pow(10,--count)); 
	printf("\n");
	
	//	3、反序输出 
	for(int i=num;i;i/=10)
		printf("%d",i%10); 
}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区