scanf("%2.2f\n",&r); //主要是这句出问题了,首先\n可以去掉,默认输入有\n结尾,加上有时有不可预知的错误; 其次是%2.2f出错了,我试了%2f是可行的,就是带上.2f就会出错,用debug调试带上了.2f时,输入的半径会变得非
常大,如图, 具体原理不是特别清楚,反正不限制输入的小数位数是可以得到你想要的答案的。
问题是程序不正确啊。请改为:scanf("r=%f",&r);
你的输出错了。