A-A+
下列给定程序中函数proc的功能是:取出长整型变量s中偶数位上的数 依次构成一个新数放在t中
问题详情
下列给定程序中函数proc的功能是:取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。例如,当s中的数为l23456789时,t中的数为2468。请修改程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: include<stdlib.h> include<stdio.h> include<conio.h> //****found**** void proc(long S,long t) { long sl=10; s/=10; *t=s%10; //****found**** while(s<O) { s=s/l00; *t=s%10*sl+*t; s1=sl*10; } } void main {long S,t; system("CLS"): printf("nPlease enter S:"); scanf("%ld",&s); proc(S,&t); . printf("The result is:%ldn",t); } 请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:
(1)错误:void proc(10ng S,long t)
正确:void proc(long s,long*t)
(2)错误:while(s<0)
正确:while(s>O)
【解 析】从主函数中实参可知,形参的第二个变量是长整型的指针变量。因此“void proc(long s,long t)”应改为“void proc(long s,long*t)”;要从低位开始取出长整型变量s中偶数位上的数,每次变量S要除以100,然后判断其是否大于0来决定是否要继续,因此 “while(s<O)”应改为“while(s>0)”。