全部问题 > 当前问题

老师这那里错了啊?求解

#include<stdio.h>

int fun(int n)

{ int x,i,s=0;

x=1;

while(i=n%10)

{ if(i%2==0)

{s=s+x*i;x=x*10;}

else

 n=n/10;

}}}

return(s)


main()

{int n;

scanf("%d",&n);

m=fun();

printf("%d",m);

}


徐海鑫 2016-6-23 07:08:44

共 6 个回答

嘿嘿大人 2016-6-23 07:17:31

调用函数的时候没有实参

嘿嘿大人 2016-6-23 07:18:29

还有自定义函数的大括号没有包括return语句

赵晨 2016-6-24 00:47:03

什么叫调用函数的时候没有实参?哪个位置应该放实参?是不是定义函数里的都是形参,main()函数调用函数里的都是实参?

最佳答案

嘿嘿大人 2016-6-24 07:38:19

回复 赵晨

#include<stdio.h>


int fun(int n)//形参


{ int x,i,s=0;


x=1;


while(i=n%10)


if(i%2==0)


{s=s+x*i;x=x*10;}


else

n=n/10;


}


return(s);

}



main()


{int n,m;


scanf("%d",&n);


m=fun(n);//实参


printf("%d",m);


}

你这个自定义函数在定义的时候有了形参,所以在调用的时候也要有实参

定义函数位置如有参数都是形参,可以没有形参,但是有了形参就必须要有实参,调用处函数里面如果有参数那就是实参,你回头再学一学函数部分,还有代码里面其他地方还是有语法错误,因为我不知道你代码目的是什么,只帮你改下语法错误


徐海鑫 2016-6-24 16:50:27

谢谢老师了

赵晨 2016-6-24 17:05:48

谢谢老师

问题来自: 填空题真题