C语言,编写一个程序计算矩形的面积和周长 初学者,想问问我编的这个哪有错误?如何改?

初学者,想问问我编的这个哪有错误?如何改?
#include<stdio.h>
main()
{
float length,width,area,perimeter;
printf("Enter length and width:\n");
scanf("%f,%f",&length,&width);
area=length*width;
perimeter=(length+width)*2;
printf("area=%.2f perimeter=%.2f\n",area,perimeter);
return 0;
}为什么计算结果总是不对,还是负数。

这段程序代码是没有错误的,估计问题出在输入格式上。程序使用如下语句输入:
scanf("%f,%f",&length,&width);

注意两个%f之间的逗号。如果输入时没有严格按照此格式在两个数值之间加上这个逗号,输入值就会错误,width的值通常会是一个随机值,而这个随机值大多是负值,而且绝对值很大。这样一来,输出结果肯定全都变为负值了。
如果不修改这些,就在输入时注意加上英文逗号试试;
或者把输入格式中的那个逗号去掉,改成:scanf("%f%f",&length,&width);
注意两个%f是紧挨着的,中间没有任何符号。这样在输入时可以使用回车、空格等空白符分隔。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-30
你输入长和宽的时候没把逗号输入吧?记住要用逗号隔开,不然width就是没赋值,而是一个很大的负数,所以你得到的是负数啊
第2个回答  2012-10-29
周长为负数?
还是面积?追问

我在VC++6.0上运行了一下,都负的

相似回答