标题:请高手帮忙看看这个简单的求圆周和面积的程序
取消只看楼主
fred_99
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2013-5-12
结帖率:0
已结贴  问题点数:20 回复次数:6 
请高手帮忙看看这个简单的求圆周和面积的程序
以下是一个简单的求圆面积和圆周的程序,具体的要求是:
1. 按照输入的半径来计算面积和圆周;
2. 输入的半径必须大于0,否侧,系统会要求重新输入有效半径值;
3. 当输入-1为半径值的时候,系统结束计算。并且结束之后统计输入有效半径次数和一共输入的有效半径的总和。

现在遇到的难题是:关于计算和统计都没有问题,只是在输入-1来结束程序的时候,程序总是要先计算-1为半径的圆周和面积,再进行总体的统计。

怎样才能让系统跳过计算半径为-1的圆周和面积?

我刚开始学C语言不到2周,实在是没法解决这个问题。请高手帮忙解惑。先谢过了。

#include "stdafx.h"
#include "stdio.h"
#define PI 3.14159265
int _tmain(int argc, _TCHAR* argv[])
{
    double radius=0.0;
    double circumference =0.0;
    double area = 0.0;
    int calculation_counted = -1; // adjustment because of the circule which has the radius=-1 (to end) will be counted
    double sum_radiuses= 1.0; // adjustment because of the radius=-1 will be entered to end

    while (radius != -1)
    {   
        printf ("Please enter a radius value (-1 to end): ");
        scanf_s ("%lf", &radius);
               
        while ((radius<-1) || (-1 < radius && radius< 0))// radius must be bigger than 0
        {
        printf ("The radius must >=0, enterd a valid radius (or -1 to end): ");
        scanf_s ("%lf", &radius);
        }
        
        circumference = 2*PI*radius;// circumference equation
        area = PI*radius*radius; // area equation

        calculation_counted = calculation_counted + 1;
        sum_radiuses = sum_radiuses + radius;
        
        printf ("The ciucumference is %lf \n", circumference); // %lf, %#.#f.... depends on the requirement
        printf ("The area is %lf\n\n", area);     
    }
   
    printf ("%d valid radiuses have been counted,\n ", calculation_counted);
    printf ("The sum of valid radiuses is %5.2f\n ", sum_radiuses);
    printf ("\n\n");

    return 0;
}
搜索更多相关主题的帖子: 计算 圆面积 C语言 
2013-05-12 11:27
fred_99
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2013-5-12
得分:0 
回复 2楼 TonyDeng
你是说那两个 while{}?

第一个是 只要radius不等于-1,就一直可以输入radius值。
第二个是 如果发现radius小于零并不等于-1,就要求输入大于零的有效radius值。
2013-05-12 12:42
fred_99
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2013-5-12
得分:0 
回复 4楼 yyqd2013
这样可以让程序不计算radius=-1的情况。

但是,最后的统计数值出现问题。一直改不好。
2013-05-12 12:43
fred_99
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2013-5-12
得分:0 
回复 3楼 yyqd2013
用if替代while,不能循环。。。
2013-05-12 12:48
fred_99
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2013-5-12
得分:0 
回复 7楼 TonyDeng
怎样进入单步调试模式?

不好意思,我是刚刚开始学。
2013-05-12 12:50
fred_99
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2013-5-12
得分:0 
回复 10楼 fred_99
我在网上找到进入单步调试的方法了。谢谢。
2013-05-12 12:59
fred_99
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2013-5-12
得分:0 
回复 8楼 yyqd2013
因为-1要被计算在内的,所以只能调整开始的数字。。。
2013-05-12 13:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-406872-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.332304 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved