float s,S ; //这两货需要定义float int a,b,c; //省 //略 if(a+b>c&&a+c>b&&b+c>a) { s=(a+b+c)/2; S=sqrt(s*(s-a)*(s-b)*(s-c));//这里的float没意义 printf("三角形面积=%f",S); //输出需要%f }
S不能定义为int,要单独定义成float你下面的强制转换没什么用