注册 登录
编程论坛 C++教室

为什么编译时没有错误,但是结果是错的呢?请教下

sun994106867 发布于 2013-12-02 13:56, 794 次点击
//求圆的周长与面积
#include<iostream>
using namespace std;
float cir_c(float);      //定义圆周长的函数
float cir_s(float);      //定义圆面积的函数
const float pi=3.1416;     //定义pi的值

//周长函数
float cir_c(float x)
{
    float z;
    for(;x>=0;)
        z=2*pi*x;
    return(z);
}

//面积函数
float cir_s(float x)
{
    float z;
    for(;x>=0;)
        z=pi*x*x;
    return(z);
}

int main()
{
    float r;
    cout<<"R= ";
    cin>>r;
    float c;
    float s;
    c=cir_c(r);
    s=cir_s(r);
    cout<<"周长是: "<<c<<endl;
    cout<<"面积是: "<<s;
    return 0;
}
10 回复
#2
peach54602013-12-02 13:59
编译没错最多只代表你语法正确...

编程就像写文章...
编译通过表示你写文章没有错别字,语句无明显不通顺...
这不代表你这样就是写了一篇脍炙人口的好文章...
#3
i802862013-12-02 14:10
周长函数、面积函数中为什么要用for循环?
#4
左手拉一只猫2013-12-02 16:24
以下是引用peach5460在2013-12-2 13:59:09的发言:

编译没错最多只代表你语法正确...

编程就像写文章...
编译通过表示你写文章没有错别字,语句无明显不通顺...
这不代表你这样就是写了一篇脍炙人口的好文章...

这解释通俗易懂!
#5
sun9941068672013-12-02 17:24
回复 3楼 i80286
因为周长和面积里的数只能是正数呀,那麻烦你帮我看下这到底有什么错误呀,谢谢啦
#6
sun9941068672013-12-02 18:10
回复 2楼 peach5460
这道理我也懂,但是我不知道我的程序里到底有什么错误,能请教下你吗?
#7
强忍幻泪2013-12-02 19:30
正数是用if语句判断的,与for没关系
#8
kevin_012013-12-02 21:23
//求圆的周长与面积
#include<iostream>
using namespace std;
#define PI  3.16

float cir_c(float);      //定义圆周长的函数
float cir_s(float);      //定义圆面积的函数
//const float pi=3.1416;    //定义pi的值

//周长函数
float cir_c(float x)
{
    return 2*PI*x;
}

//面积函数
float cir_s(float x)
{
    return PI*x*x;
}

int main()
{
    float r;
    cout<<"R= ";
    cin>>r;
    while(r<=0)
    {
        cout<<"输入有误,请重新输入!"<<endl;
        cout<<"R= ";
        cin>>r;

    }
    float c;
    float s;
    c=cir_c(r);
    s=cir_s(r);
    cout<<"周长是: "<<c<<endl;
    cout<<"面积是: "<<s<<endl;
    return 0;
}
#9
peach54602013-12-03 14:38
以下是引用sun994106867在2013-12-2 18:10:33的发言:

这道理我也懂,但是我不知道我的程序里到底有什么错误,能请教下你吗?

在你说这句话之前,不是已经有人给出了答案么?
#10
画圆圈2013-12-03 20:51
#include<iostream>
using namespace std;
const float pi=3.1416;     //定义pi的值

//周长函数
float cir_c(float x)
{
    float z;
     z=2*pi*x;
    return(z);
}

//面积函数
float cir_s(float x)
{
    float z;
     z=pi*x*x;
    return(z);
}

int main()
{
    float r;
    cout<<"R= ";
    cin>>r;
    float c;
    float s;
    c=cir_c(r);
    s=cir_s(r);
    cout<<"周长是: "<<c<<endl;
    cout<<"面积是: "<<s;
    return 0;
}                  
我改了一下,然后运行,结果就对了,不知道我这样改有没有错
#11
dorble2013-12-04 15:38
你2个函数用的for循环,条件是半径非负,你的程序如果输入负数循环不执行,就返回一个没初始化的z;
如果输入整数,就是一个死循环
1