从低位开始取出长整型变量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的变量
很显然还是数组来的清晰明了
如有不足,还望指正