C语言:整数的逆序 & 顺序输出

整数的逆序输出

1.算法思路

  1. 利用%取余运算,根据不同进制数数据采用不同;
  2. 对取得余数进行逆运算(乘以刚才除数),然后加上刚才取得余数;
  3. 循环上一步;

2、代码如下:

//  整数的逆序输出 
#include <stdio.h>
int main() 
{
	int x;
	 printf("请输入一个整数:");
	 scanf("%d",&x);
	// x=700;
	int digit;
	int ret = 0;
	while (x>0){
		digit = x%10;
		// printf("%d\n",digit);
		ret = ret*10+digit;
		// printf("x=%d,digit=%d,ret=%d\n",x,digit,ret);
		x/=10;
		
	}
	printf("逆序数为:%d",ret);
	
	return 0;
}

代码输出:
请输入一个整数:123456
逆序数为:654321
--------------------------------
Process exited after 5.501 seconds with return value 0
请按任意键继续. .

代码分析:主要是取余运算,和逆序输出衔接问题。

整数的顺序输出

  1. 算法思路
    1、当整数进行顺序输出时,首先要利用除法对它的最高位进行取整,然后对余数进行再取整,依次输出最高位取整结果。
    2、这个运算需要知道输入的整数是几位数的整数,然后才能参与运算。

  2. 代码如下:

#include<stdio.h>
int main()
{
       	//		x=13425;
		//		x/10000   >1;
		//		x%10000   >3425;
		//		10000/10  >1000;
		//		3425/1000  >3;
		//		3425%1000  >425;
		//		1000/10    >100;
		//		425/100    >4;
		//		425%100    >25;
		//		100/10     >10;
		//		25/10      >2;
		//		25%10      >5
		//		10/10      >1;
		//      5/1       >5;
		//      5%1       >5;
		//      1/10      >0;	
	int x;
	scanf("%d",&x);
	int mask=1;	
	int t=x;
	while(t>9){
		t/=10;
		mask*=10; 
	}
	printf("x=%d,mask=%d\n",x,mask);
	while(mask>0){
		int d=x/mask;
		if(mask>0){
			printf("%d ",d);
		}
		x%=mask;
		mask/=10;
	}	
	return 0;
}

代码输出:
		70000
		x=70000,mask=10000
		7 0 0 0 0
		--------------------------------
		Process exited after 6.554 seconds with return value 0
		请按任意键继续. . .

代码分析:
这里的出彩部分就是采用了 d=x/mask ;mask>0 进行了判定,没有用 x 的值作为条件循环的判断语句,可以更好的避免了边条件的输出错误问题。

while(mask>0){
		int d=x/mask;
		if(mask>0){
			printf("%d ",d);
		}
		x%=mask;
		mask/=10;

总结
循环的判定条件很重要,用的好可以起到优化程序使代码更加简洁的效果,在累加的计算中初始化变量一定要设置为0;累乘的计算中初始化变量为1。

  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下代码实现: ```c #include <stdio.h> int main() { int i; for (i = 10; i >= 1; i--) { printf("%d ", i); } return ; } ``` 输出结果为:10 9 8 7 6 5 4 3 2 1 ### 回答2: 要用C语言将1~10整数逆序输出,可以使用一个循环和一个数组来实现。 首先,我们可以声明一个大小为10的整数型数组arr[10]。然后,使用一个循环将1~10的整数依次存入数组中,存储的顺序为从大到小。循环的计数变量可以命名为i,初始值为1,每次循环结束后自增1,直到循环结束条件i大于10。 在每次循环中,通过下标运算符[]将当前的整数值存储到数组中。存储的位置可以通过10减去循环变量i来得到,即arr[10-i]等于当前的整数值。 最后,再使用一个循环将数组arr中的元素逆序输出即可。循环的计数变量可以命名为j,初始值为9,每次循环结束后自减1,直到循环结束条件j小于0。在每次循环中,使用下标运算符[]获取到数组中的元素,并将其打印输出到屏幕上。 整个C程序的代码如下所示: ```c #include<stdio.h> int main(){ int arr[10]; int i, j; // 存储1~10的整数到数组中 for(i=1; i<=10; i++){ arr[10-i] = i; } // 逆序输出数组中的元素 for(j=9; j>=0; j--){ printf("%d ", arr[j]); } return 0; } ``` 编译并运行上述的C程序,就可以将1~10的整数逆序输出输出结果为:10 9 8 7 6 5 4 3 2 1。 ### 回答3: 在C语言中,可以通过for循环和数组来实现将1~10整数逆序输出。 首先,我们可以定义一个长度为10的整数型数组,用来存储1~10的整数。然后,我们使用for循环倒序遍历这个数组,并通过printf函数逐个输出数组的元素。 以下是示例代码: #include <stdio.h> int main() { int arr[10]; //定义一个长度为10的整数型数组 //将1~10的整数依次存储到数组中 for (int i = 0; i < 10; i++) { arr[i] = i + 1; } //倒序输出数组元素 for (int i = 9; i >= 0; i--) { printf("%d ", arr[i]); } return 0; } 执行以上代码,输出结果为:10 9 8 7 6 5 4 3 2 1

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值