从低位开始取出长整型变量s中奇数位上的数依次构成一个新数放在t中
例如:当s中的数为:7654321时,t中的数为:7531
这里写两种简单的做法
第一种–通过数组
这里需要注意的就是因为获取长数字的数是从后往前取到数组里的,因此输出时需要逆序输出
int get_OddNum(long num,int *t)
{
int i = 0;//数组下标,也作为数组长度返回
while (num)
{
t[i++] = num % 10;
num /= 100; //因为取的是奇数位
}
return i;
}
void main()
{
long num = 7654321;
int arr[5],len;
len=get_OddNum(num,arr);
for (int i = len-1; i >=0 ; i--)//逆序遍历数组输出
{
printf("%d", arr[i]);
}
}
第二种–通过变量
如果不用数组,那么变量也可以实现倒着取数,把那个数拼好
举个例子,12345,如果我们要取后面的4和5,那么其实就是把5先拿出来存好,再取出4,拿它×10再加上5,得到45,如果再多数也只需要一个变量.
那么是不是可以这么写了呢
int get_OddNum(long num)
{
int res = 0;
int temp = 1;
while (num)
{
res = num % 10 * temp + res;
num /= 100;
temp *= 10;
}
return res;
}
void main()
{
long num = 7654321;
int res;
res=get_OddNum(num);
printf("%d", res);
}
这里的res就是最后要的数,而temp就是用于乘多少个10的变量
很显然还是数组来的清晰明了
如有不足,还望指正