| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 976 人关注过本帖
标题:新手学 c ,运行出错,麻烦帮忙看一下
只看楼主 加入收藏
cquwt
Rank: 1
等 级:新手上路
帖 子:41
专家分:2
注 册:2013-12-24
结帖率:69.23%
收藏
已结贴  问题点数:5 回复次数:11 
新手学 c ,运行出错,麻烦帮忙看一下
/*按下列要求改写上述程序:
试编一个求三角形面积的自定义函数triangle(),在main函数中两次调用该函数求三边分别为3、4、5及2、5、6的三角形面积并输出。
要求:1)第一次将调用结果赋给一个变量,再打印该变量的值;
      例如:s=area(3,4,5);
            printf("该三角形的面积为:",s);
2)第二次将函数调用作为printf函数的参数直接输出。
例如:printf("该三角形的面积为:%.2f\n",area(3,4,5));*/
#include <stdio.h>
#include <math.h>
void main()
{    double triangle(double a,double b,double c);
    double area(double a,double b,double c,double s);
    double a,b,c,s,m;
    printf("input data for triangle:");
    scanf("%f,%f,%f",&a,&b,&c);
    s=triangle(a,b,c);
    scanf("%f",&s);
    m=area(a,b,c);
    printf("\n");
}
double triangle(double a,double b,double c)
{    double s;
    if(a+b>c && a+c>b && b+c>a)        
    s=(a+b+c)/2;
    printf("%f\n",s);
    return s;
}
double area(double a,double b,double c,double s)
{   double m;
    m=sqrt(s*(s-a)*(s-b)*(s-c));
   printf("该三角形的面积为:%.2f\n",m);
   return m;
}
搜索更多相关主题的帖子: triangle include double 三角形 
2014-04-20 19:41
Andrew_Lee
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:185
专家分:626
注 册:2014-3-21
收藏
得分:0 
m=area(a,b,c);这个函数不应该有四个的吗吗,你怎么只要三个!
2014-04-20 19:50
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:0 
自己对照一下吧。
#include <stdio.h>
#include <math.h>
void main()
{   
   
    double triangle(double a,double b,double c);
    double area(double a,double b,double c,double s);
    double a,b,c,s,m;

    printf("input data for triangle:");
    scanf("%lf,%lf,%lf",&a,&b,&c);

    s=triangle(a,b,c);

    m=area(a,b,c,s);
    printf("\n");
}

double triangle(double a,double b,double c)
{    double s=0;
    if(a+b>c && a+c>b && b+c>a)
        s=(a+b+c)/2;
        printf("s=%lf\n",s);
    return s;
}
double area(double a,double b,double c,double s)
{   double m=0;
   if(a+b>c && a+c>b && b+c>a)
        m=sqrt(s*(s-a)*(s-b)*(s-c));
   printf("该三角形的面积为:%.2lf\n",m);
   return m;
}
2014-04-20 19:53
cquwt
Rank: 1
等 级:新手上路
帖 子:41
专家分:2
注 册:2013-12-24
收藏
得分:0 
回复 3 楼 ying8501
为什么s和m要赋初值啊,赋值后有什么意义啊
2014-04-20 21:43
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:2 
当条件a+b>c && a+c>b && b+c>a不满足时,可以输出和返回0,否则,就是垃圾数据,不好看。
2014-04-20 21:48
cquwt
Rank: 1
等 级:新手上路
帖 子:41
专家分:2
注 册:2013-12-24
收藏
得分:0 
回复 2 楼 Andrew_Lee
恩,这是一个错误,可是改了之后还是不行,结果只输出了s没有输出m
2014-04-20 21:56
cquwt
Rank: 1
等 级:新手上路
帖 子:41
专家分:2
注 册:2013-12-24
收藏
得分:0 
回复 5 楼 ying8501
恩,这个知道了,
现在主要问题是结果不能输出m啊,结果只显示S,
2014-04-20 22:46
zengxiangzho
Rank: 2
等 级:论坛游民
帖 子:8
专家分:10
注 册:2014-4-13
收藏
得分:3 
#include <stdio.h>
 #include <math.h>
 void main()
 {   
     
     double triangle(double a,double b,double c);
     double area(double a,double b,double c,double s);
     double a,b,c,s,m;

     printf("input data for triangle:");
     scanf("%lf,%lf,%lf",&a,&b,&c);


     s=triangle(a,b,c);

     m=area(a,b,c,s);
     printf("\n");
 }

 double triangle(double a,double b,double c)
 {    double s=0;
    if(a+b>c && a+c>b && b+c>a)
         s=(a+b+c)/2;
         printf("s=%lf\n",s);
     return s;
 }
 double area(double a,double b,double c,double s)
 {   double m=0;
 if(a+b>c && a+c>b && b+c>a)
     m=sqrt(s*(s-a)*(s-b)*(s-c));
 printf("该三角形的面积为:%.2lf\n",m);
 return m;
 }
你输入三个数据时,请用都好隔开呀!!!!!!!!!!!!!不能用空格
2014-04-21 12:03
zengxiangzho
Rank: 2
等 级:论坛游民
帖 子:8
专家分:10
注 册:2014-4-13
收藏
得分:0 
#include <stdio.h>
 #include <math.h>
 void main()
 {   
     
     double triangle(double a,double b,double c);
     double area(double a,double b,double c,double s);
     double a,b,c,s,m;

     printf("input data for triangle:");
     scanf("%lf,%lf,%lf",&a,&b,&c);


     s=triangle(a,b,c);

     m=area(a,b,c,s);
     printf("\n");
 }

 double triangle(double a,double b,double c)
 {    double s=0;
    if(a+b>c && a+c>b && b+c>a)
         s=(a+b+c)/2;
         printf("s=%lf\n",s);
     return s;
 }
 double area(double a,double b,double c,double s)
 {   double m=0;
 if(a+b>c && a+c>b && b+c>a)
     m=sqrt(s*(s-a)*(s-b)*(s-c));
 printf("该三角形的面积为:%.2lf\n",m);
 return m;
 }
你输入三个数据时,请用都好隔开呀!!!!!!!!!!!!!不能用空格
2014-04-21 12:03
cquwt
Rank: 1
等 级:新手上路
帖 子:41
专家分:2
注 册:2013-12-24
收藏
得分:0 
/*要求随机产生10个3位以内整数放入一维数组arr[ ]中,并用选择排序法对这10个数降序排列,程序中存在若干错误,请改正这些错误并把程序补充完整后上机调试通过。*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define size 10
void main()
{  int i,j,k,temp,arr[size];
   srand((unsigned) time(NULL));
   for(i=0;i<size;i++)
      arr[i]=rand()%1000;
  printf("排序前的10个数:\n");
  for(i=0;i<size;i++)
  printf("%5d",arr[i]);
   printf("\n");
  for(i=0;i<size;i++)
   {  k=0;
       for(j=i;j<size;j++)
       {  if(arr[j]>arr[k])
           temp=arr[j],arr[j]=arr[k],arr[k]=temp;
       }
       arr[i]=a[k];
    }
  printf("排序后的10个数:");
    for(i=0;i<size;i++)
       printf("%5d",arr[i]);
  printf("\n");
}

那这个呢?寻寻觅觅总有一个错误~~~
2014-04-24 13:25
快速回复:新手学 c ,运行出错,麻烦帮忙看一下
数据加载中...
 
   



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

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