问答题
函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中,合并的方式是:将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位数和个位数依次放在变量c的个位和百位上。 例如:a=45,b=12。调用该函数后:c=4251。 注意: 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的花括号中填入所编写的若干语句。 /**********code.c**********/ #includ<stdio.h> voifun(inainblon*c) {   } voimain() {   voiNON();   ina,b;lonc;   printf("Inpua,b:");   scanf("%%d",&a,&b);   fun(a,b,&c);   printf("Thresulis:%l",c);   NON()  } voiNON() {/*本函数用于执行测试,勿动*/   FIL*rf*w;   inia,lon;   rfopen("in.dat","r";   wfopen("out.dat","w";   for(<1i++{     fscanf(rf"%d,%d"&a&b;     fun(ab&c;     fprintf(wf"%l"c;   }   fclose(rf;   fclose(wf; } /**********-code.c**********/ /**********indat**********/ 45,12 63,54 14,78 88,91 71,13 12,45 72,32 29,99 34,43 22,44 /**********-indat**********/ /**********outdat**********/ 4251 6435 1847 8189 7311 1524 7223 2999 3344 2424 /**********-outdat**********/
【正确答案】 无
【答案解析】 void fun(int a, int b, long *c){ *c=(a/10)*1000+(b_x0010_)*100+(a_x0010_)*10+b/10; } 设计思路是:①按位拆分正整数,与10整除(/)求其高位,与10取模(%)求其低位。②按位合并,每位上的数字与该位上的位权相乘,然后各位相加,即anan-1…a2a1a0=an*10n+an-1*10n-1+…+a2*102+a1*10+a0*100。
提交答案
关闭