给定程序MODI1.C中函数fun的功能是:将长整型数中为偶数的位依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数为8642。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
文件MODI1.C内容如下:
#include<stdio.h>
void fun(10ng s,long *t)
int d;
long s1=1;
t=0;
while(s>0)
d=s%10:
/**********found**********/
if(d%2=0)
*t=d*s1+*t; s1*=10;
/**********found**********/
s\=10;
void main( )
long s,t;
printf("\nPlease enter s:");
seanf("%1d",&s);
fun(s,&t);
printf("The result is:%1d\n",t);
参考答案:第1处:将“if(d%2=0)”改为“if(d%2==0)”。
第2处:将“s\=10;”改为“s/=10;”。
解析: 根据题目要求需要取出s各位为偶数的数字组成一个新数放在t指向的变量中。循环中每次取出s的个位放在变量d中,需要判断d是否为偶数,所以第1处错误在于赋值运算符和关系运算法出现混淆,应该改为“d%2==0”。对每次取出s的个位进行判断处理后,应该将s的个位去掉,所以需要对s做整除10的操作,第2处错误在于除法运算符书写错误。