我是大一新生,c语言求大神解答

这是我编的源程序/*给10z组a b c求证若组成三角形求其周长 面积(精确小数点两位) 不成立输出a b c*/#include<stdio.h>
#include<math.h>
int main(void)
{
int i;
double a,s,b,c,m,area; /*m为周长,area为面积*/
for(i=1;i<=10;i++){
printf("enter a b c:");
scanf("a=%lf,b=%lf,c=%lf\n",a,b,c);
if(a+b>c&&a-b<c){
m=a+b+c;
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("m=%.2f,area=%.2f\n",m,area);
}
else{
printf("a=%.2f,b=%.2f,c=%.2f\n",a,b,c);
}
}
return 0;
}

运行结果
改了scanf("%lf%lf%lf\n",&a,&b,&c);
输出
没有结果了

问题在scanf("a=%lf,b=%lf,c=%lf\n",a,b,c);上,scanf不是这么用的

改成
scanf("%lf %lf %lf",&a,&b,&c);

像a= b=这样的不能出现在scanf里,scanf不是printf追问

改了 然后没有输出结果了

追答

scanf("%lf%lf%lf\n",&a,&b,&c);

%lf后面那个\n去掉,你没改对。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-08
你的scanf用错了,应该改为: scanf("%lf%lf%lf",&a,&b,&c);
运行就没问题了。追问

可是改了 还加上了&  就没有输出结果了

 

第2个回答  2012-11-08
scanf("a=%lf,b=%lf,c=%lf\n",a,b,c);
可以改为:
scanf ("a=%lf,b=%lf,c=%lf",&a, &b, &c);

scanf ("%lf %lf %lf",&a, &b, &c);
第3个回答  2012-11-08
scanf("a=%lf,b=%lf,c=%lf\n",a,b,c);在编译的时候是不准确的,
scanf("%lf%lf,%lf\n",&a,&b,&c);你上面的形式是printf的输出格式
第4个回答  2012-11-08
我不懂
相似回答