改错题 给定程序中函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中.
问题描述:
改错题 给定程序中函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中.
#include
void fun (long *t, long s)
{ long sl=10;
s /= 10;
*t = s % 10;
while(s> 0)
{ s = s/10;
*t = *t+s%10*sl ;
sl = sl * 10;
}
}
main()
{ long s, t;
printf("\nPlease enter s:");
scanf("%ld", &s);
fun(s ,t);
printf("The result is: %ld\n", t);
}
要求:
1.将上述程序录入到文件myf3.c中,然后根据题目的要求以及程序中语句之间的逻辑关系对程序中的错误进行修改.
2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句
答
修改的地方用注释标出来了,看一下吧
#include
void fun (long *t,long s)
{
long sl=10;
s /= 10;
*t = s % 10;
while(s> 0)
{
s = s/100;//修改位置,取偶数位,应该隔两位取一次,所以除以100
*t = *t+s%10*sl ;
sl = sl * 10;
}
}
main()
{
long s,t;
printf("\nPlease enter s:");
scanf("%ld",&s);
fun(&t ,s); //修改位置,函数调用出错
printf("The result is:%ld\n",t);
}