大侠们!还是那个c语言的问题!!!真的很急!实在没办法了!求大家帮帮我

来源:百度知道 编辑:UC知道 时间:2024/06/08 13:30:52
写一个函数完成如下功能:从低位开始取出长整数中偶数位上的数,依次构成一个新的数。例如,当长整数为7654321时,构成的新的数为642。
函数原型为:void fun(long s,long *t) 要求用c++6.0软件能做出来...vb2008不行!谢谢大家了!!!
要详细的编程步骤!!!

终于出来了
void fun(long s,long *t)
{
int i=1;
long new = 0;
s /= 10;
while(s)
{
new +=(s%10)*i;
s /= 100;
i *=10;
}
*t = new;
}

#include <stdio.h>

void fun(long s,long *t){
/* 初始化变量 */
int incrmnt = 1; // 用于将数字向前移
int counter = 0; // 用于判断是否为偶数位
long buff = 0; // 用于储存摘出的数字

while(s != 0){
if(counter){ // 储存找出的数字 %10 做余数
buff += incrmnt * (s%10);
incrmnt *= 10; // 用于前移摘出的数据
}
s /= 10; // 每次将数串缩减一位数
counter ^= 0x01;// 二进制XOR运算,结果依次为 101010...
}

*t = buff; // 将计算结果存入指针用以返回
}

int main(void){

long s = 29465684;
long t;

fun(s, &t);

printf("Result: %ld\n", t);

return 0;
}

两位兄台都不错,特来赞一个~!