编写函数fun,它的功能是:将两个两位正整数a、b合并形成一个整数存放在c中,合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,将b数的十位和个位数依次放在c数的百位和个位上。
例如,当a=45,b=12时,调用该函数后,c=5142。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
```c++
#include <stdio.h>
void NONO(void);
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: %d\n", c);
NONO();
return 0;
}
void NONO(void)
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *rf, *wf ;
int i, a,b ;
long c ;
rf = fopen("in.dat", "r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++)
{
fscanf(rf, "%d,%d", &a, &b) ;
fun(a, b, &c) ;
fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c) ;
}
fclose(rf) ;
fclose(wf) ;
}
```
void fun(int a, int b, long *c)
{
*c = (a / 10) * 1000 + (a % 10) * 10 + (b / 10) * 100 + (b % 10);
}
注释:将两个两位正整数a和b的数字按照规则组成一个新的整数c,并将c通过指针传递给主函数。在本函数中,先将a的十位放在c的十位上,a的个位放在c的千位上,再将b的十位放在c的百位上,b的个位放在c的个位上。最后将c通过指针返回。
void fun(int a, int b, long *c)
{
int i,j,k,m;
i=b%10;
j=a/10%10;
k=b/10%10;
m=a%10;
*c=m*1000+k*100+j*10+i;
}