数字的顺序输出和逆序输出

例题:输入一个整数(可以是正数,负数或者0),要求 :
(1) 求出它是几位数;  1234565678678967867
(2) 分别输出每一位数字.例如123,输出1 2 3;(顺序输出)
(3) 按逆序输出各位数字,例如原数为 321, 应输出 1 2 3(逆序输出)
注意:n = n/10;  丢弃个位

eg:顺序输出三位数s(abc):

百位a = s /100 % 10;  三位除以10的二次方
十位b = s / 10 % 10; 二位除以10的一次方
个位c = s % 10;一位除以10的零次方

得到规律:得到n位需除以10的n-1次方取余。

//计算数字的位数
int main()
{
	long long n;
	scanf_s("%lld", &n);
	int sum = 0;//位数
	if (n == 0)
		sum = 1;
	while (n != 0)//为真,循环继续
	{
		sum++;
		n /= 10;// n = n/10;  丢弃个位 
	}
	printf("%d\n", sum);

	return 0;
}
//第二种写法,用do while
int Figures(int a)
{
	int b=0;
	do {
		a = a / 10;
		b++;
	} while (a != 0);
	return b;
}



#include <math.h>
//顺序输出每一位
int main()
{
	long long n;
	scanf_s("%lld",&n);
	long long m = n;
	int sum = 0;//位数
	if (n == 0)
		sum = 1;
	while (n != 0)//为真,循环继续
	{
		sum++;
		n /= 10;// n = n/10;  丢弃个位 
	}
	
	long long power = (long long)pow(10,sum-1);//123,3->10^2
	n = m;
	while (n != 0)
	{
		printf("%lld ",n/power);//得到高位并输出
		n %= power;
		power /= 10;
	}

	return 0;
}

//逆序输出数字的每一位
int main()
{
	long long n;
	scanf("%lld",&n);
	if (n < 0)
	{
		printf("-");
		n = -n;
	}
	while (n != 0)
	{
		printf("%lld ",n%10);//得到个位并输出
		n /= 10;//丢弃个位
	}
	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很高兴回答您的问题!C语言输入十个数,可以使用循环语句来实现,接着可以用两个变量来存储输入的数字,一个变量存储最大的数,另一个变量存储最小的数,然后使用一个循环语句将最大的数和最小的数输出,直到所有的数都被输出。 ### 回答2: 编写C语言程序实现输入十个数,然后按照逆序和顺序输出这十个数。 ```c #include <stdio.h> int main() { int nums[10]; int i; // 输入十个数 printf("请输入十个整数:\n"); for(i = 0; i < 10; i++) { scanf("%d", &nums[i]); } // 逆序输出 printf("逆序输出:\n"); for(i = 9; i >= 0; i--) { printf("%d ", nums[i]); } // 顺序输出 printf("\n顺序输出:\n"); for(i = 0; i < 10; i++) { printf("%d ", nums[i]); } return 0; } ``` 上述代码中,我们使用了一个整数类型的数组`nums`来存储输入的十个数。首先,我们使用`for`循环逐个接收用户输入的十个数并存储在数组中。接着,我们按照逆序(从数组的最后一个元素开始)使用`for`循环输出数组中的元素。然后,我们按照顺序(从数组的第一个元素开始)使用`for`循环输出数组中的元素。 注意,程序中的`scanf`和`printf`函数分别用于输入和输出。另外,我们假设用户会输入十个整数,如果用户输入的数据类型和数量不符,可能会导致错误。所以在实际应用中,我们还需要进行错误处理和输入验证。 ### 回答3: C语言可以通过使用数组来输入十个数,并按照逆序和顺序进行输出。 首先,我们需要定义一个大小为10的整型数组来存储这十个数。然后,通过使用for循环来依次输入这十个数。具体代码如下所示: ```c #include <stdio.h> int main() { int nums[10]; int i; printf("请输入十个数:\n"); for (i = 0; i < 10; i++) { scanf("%d", &nums[i]); } printf("按照逆序输出:\n"); for (i = 9; i >= 0; i--) { printf("%d ", nums[i]); } printf("\n按照顺序输出:\n"); for (i = 0; i < 10; i++) { printf("%d ", nums[i]); } return 0; } ``` 运行代码后,程序会要求用户依次输入十个数,然后会按照逆序和顺序进行分别输出。 例如,如果输入的十个数依次为1、2、3、4、5、6、7、8、9、10,输出结果如下: ```c 请输入十个数: 1 2 3 4 5 6 7 8 9 10 按照逆序输出: 10 9 8 7 6 5 4 3 2 1 按照顺序输出: 1 2 3 4 5 6 7 8 9 10 ``` 以上就是使用C语言输入十个数,并按照逆序和顺序输出的实现方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值