编程题

函数 fun 功能是: 将 a、 b 中的两个两位正整数合并形成一个新的整数放在 c 中。 合并的方式是将 a 中的十位和个位数依次放在变量 c 的千位和十位上, b 中的十位和个位数依次放在变量 c 的个位和百位上。
例如, 当 a=45, b=12。 调用该函数后, c=4251。
注意, 部分源程序存在文件 PROG1.C 中。 数据文件 IN.DAT 中的数据不得修改。
请勿改动主函数 main 和其它函数中的任何内容, 仅在函数 fun 花括号中填入你编写的若干语句。

/**********code.c**********/
#include <stdio.h>
void fun(int a, int b, long *c)
{

}
int main()
{
   int a,b;
   long c;
   printf("Input a b:");
   scanf("%d%d", &a, &b);
   fun(a, b, &c);
   printf("The result is: %ld\n", c);
}

/**********-code.c**********/

【正确答案】

void fun(int a, int b, long *c)
{
   *c=a%10+(b%10)*10+(a/10)*100+(b/10)*1000;
}

【答案解析】

本题的主要问题是如何取出 a 和 b 的个位数和十位数, 取出后如何表示成 c 中相应的位数。 由于 a和 b 都是只有两位的整数, 所以分别对它们除 10 可得到它们的十位数, 分别用 10 对它们求余可得到它们的个位数。 得到后对应乘以 1000、 100、 10、 1 就可得到 c 的千位数、 百位数、 十位数和个位数。 注意: 使用 c 时要进行指针运算。