| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 894 人关注过本帖
标题:刚学程序,好多问题不懂,求哥哥姐姐们看看除了什么问题,谢谢
只看楼主 加入收藏
a1403232984
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2015-6-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:13 
刚学程序,好多问题不懂,求哥哥姐姐们看看除了什么问题,谢谢
#include<iostream>
#include<stdio.h>
#include<math.h>
#define pi 3.14
using namespace std;
void _1(int);
int xuanze()
{
    char yn;
    int i;
    cout<<"请输入您所需求的图形号码:"<<endl;
    cin>>i;
    switch(i)
    {
        case 1:
            cout<<"您所求的图形为三角形,请确认是否正确"<<endl;
            cin>>yn;
            if(yn=='y')
              return (1);
            else
              xuanze();
            break;
        case 2:
            cout<<"您所求的图形为圆形,请确认是否正确"<<endl;
            cin>>yn;
            if(yn=='y')
             return (2);
            else
              xuanze();
            break;
        case 3:
            cout<<"您所求的图形为平行四边形,请确认是否正确"<<endl;
            cin>>yn;
            if(yn=='y')
             return (3);
            else
             xuanze();
            break;   
        //case 2:
       // case 2:
    //    case 2:
    //    case 2:
        default:cout<<"输入非法"<<endl;
    }
}
int main()
{
  int i;
  do
  {
    i=xuanze();
    _1(i);
    //_2(i);
    //_//3(i);
  }while(1);  
   do
    {
      i=xuanze();
      _2(i);
    }while(2);
   
   return 0;
}
void _1(int i)
{
  float a,b,c,s,area;
  cout<<"请输入三角形的三条边长:"<<endl;
  cin>>a>>b>>c;
  s=(a+b+c)/2;
  area=sqrt(s*(s-a)*(s-b)*(s-c));
  cout<<"三角形的半周长s="<<s<<endl;
  cout<<"三角形的面积area="<<area<<endl;
}
void _2(int i)
{
    float r,area;
    cout<<"请输入圆形的半径:"<<endl;
    cin>>r;
    area=r*r*pi;
    cout<<"圆形的面积area="<<area<<endl;
}
void _3(int i)
{
    float a,h,area;
    cout<<"请输入平行四边形的高和底边长:"<<endl;
    cin>>a>>h;
    area=a*h;
    cout<<"平行四边形的面积area="<<area<<endl;
}
搜索更多相关主题的帖子: include return 三角形 哥哥 include return 三角形 哥哥 
2015-06-02 21:24
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:5 
void _1(int);
void _2(int i);
int xuanze()

剑栈风樯各苦辛,别时冰雪到时春
2015-06-02 21:59
a1403232984
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2015-6-2
收藏
得分:0 
回复 2楼 林月儿
图片附件: 游客没有浏览图片的权限,请 登录注册
谢谢,可还是这个样子
2015-06-02 22:07
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
#include<iostream>
#include<stdio.h>
#include<math.h>
#define pi 3.14
using namespace std;
void _1();
void _2();
void _3();
int xuanze()
{
    char yn;
    int i;
    cout<<"请输入您所需求的图形号码:"<<endl;
    cin>>i;
    switch(i)
    {
        case 1:
            cout<<"您所求的图形为三角形,请确认是否正确"<<endl;
            cin>>yn;
            if(yn=='y')
              return (1);
            else
              xuanze();
            break;
        case 2:
            cout<<"您所求的图形为圆形,请确认是否正确"<<endl;
            cin>>yn;
            if(yn=='y')
             return (2);
            else
              xuanze();
            break;
        case 3:
            cout<<"您所求的图形为平行四边形,请确认是否正确"<<endl;
            cin>>yn;
            if(yn=='y')
             return (3);
            else
             xuanze();
            break;   
        default:cout<<"输入非法"<<endl;
    }
}
int main()
{
  int i;
  i=xuanze();
   switch(i){
       case 1:_1();break;
       case 2:_2();break;
       case 3:_3();break;
       default:cout<<"wrong"<<endl;
   }   
   return 0;
}
void _1()
{
  float a,b,c,s,area;
  cout<<"请输入三角形的三条边长:"<<endl;
  cin>>a>>b>>c;
  s=(a+b+c)/2;
  area=sqrt(s*(s-a)*(s-b)*(s-c));
  cout<<"三角形的半周长s="<<s<<endl;
  cout<<"三角形的面积area="<<area<<endl;
}
void _2()
{
    float r,area;
    cout<<"请输入圆形的半径:"<<endl;
    cin>>r;
    area=r*r*pi;
    cout<<"圆形的面积area="<<area<<endl;
}
void _3()
{
    float a,h,area;
    cout<<"请输入平行四边形的高和底边长:"<<endl;
    cin>>a>>h;
    area=a*h;
    cout<<"平行四边形的面积area="<<area<<endl;
}

剑栈风樯各苦辛,别时冰雪到时春
2015-06-02 22:19
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
已经无话可说。。。楼主加油吧

剑栈风樯各苦辛,别时冰雪到时春
2015-06-02 22:20
a1403232984
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2015-6-2
收藏
得分:0 
回复 5楼 林月儿
恩,谢谢啦!!!!我会努力的!!
2015-06-02 22:32
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:5 
楼主加油
2015-06-02 22:35
a1403232984
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2015-6-2
收藏
得分:0 
回复 7楼 tlliqi
谢谢!!
2015-06-03 12:42
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
一般来说 点h头文件不用在c++中吧

DO IT YOURSELF !
2015-06-03 13:32
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:5 
do
  {
    i=xuanze();
    _1(i);
    //_2(i);
    //_//3(i);
  }while(1);
楼主的问题:无论i接受值是多少,都被锁死在第一个循环里了,所以只能求三角形。其实就是要把while循环换成switch分支。此外楼主的源代码还有个潜在问题,i只能一次性输对,如果要在确认“请确认是否正确”的时候想改动的话,修改的值无法传给主函数的i了。要解决的话,得把xuanze函数递归调用的返回值返回给上一级调用单位。
2015-06-03 14:50
快速回复:刚学程序,好多问题不懂,求哥哥姐姐们看看除了什么问题,谢谢
数据加载中...
 
   



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

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