请教各位高手两道编程题目:

来源:百度知道 编辑:UC知道 时间:2024/05/23 16:21:02
1。 设计函数void fun(void *x,int type),其功能为实现一个整数、长整数、单精度及双精度数除2的运算。
2。 设计函数long repl(int x),其功能为:将整数x转换成相应的二进制并以长整形的形式返回主函数。
第一题有个提示:实参x是无值类型指针,因为不同类型数据的运算是不相同的,运算时其类型由实参type确定.例如:当type为1时,表明x应为整数类型地址,此时将无参类型指针x强制转换为整数类型地址.即(int *)x.

(1)
void fun(void *x,int type)
{
if (type==0) *(int*)x/2;
if (type==1) *(long*)x/2;
if (type==2) *(float*)x/2;
if (type==3) *(double*)x/2;
}

(2)
long rpel(int x)
{
long s=0;
if (x==1) return x;
return s=10*rpel(x/2)+(x%2);
}

直接写的,有小错就自己改下