C语言课后问题求纠错

#include<stdio.h>
int main()
{
float x,y,m,n;
scanf("%f,%f",&x,&y);
int l(int x,int y);
int s(int x,int y);
m=l(x,y);
n=s(x,y);
printf("长=%f,宽=%f\n,周长=%f,面积=%f\n",x,y,m,n);
}
int l(int a,int b)
{
int c;
c=2*(a+b);
return c;
}
int s(int a,int b)
{
int d;
d=a*b;
return d;

为啥你在main函数定义的变量都是float浮点型的,但是两个函数的返回值都是int型呢?你要把两个函数都改成float型的

你好,你设置了四个float形式的变量,但是你定义的函数返回值都是int,那么在运算时会出现数据错误,系统可能自动把float转化成int导致数据错误,请采纳