关于#c++#的问题,请各位专家解答!

编写函数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;
}