| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 661 人关注过本帖
标题:C++程序编译不通过 出现了一个问题,导致程序停止正常工作
只看楼主 加入收藏
君子爱财
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-10-26
结帖率:0
  已结贴   问题点数:20  回复次数:9   
C++程序编译不通过 出现了一个问题,导致程序停止正常工作
如题,不知道哪里出现了问题,一直显示没有错误但是程序停止正常工作,请教



// 1.cpp : Defines the entry point for the console application.
//


#include<stdio.h>
#include <math.h>
int main()

{

  float a,b,c,delt,x1,x2;
  printf("输入方程的三个系数:");
  scanf("%f%f%f,&a,&b,&c");
  delt=b*b-4*a*c;
  if(b*b-4*a*c<0)
  {
      printf("此方程无解");
  }
  else
      (b*b-4*a*c>=0);
  {
  x1=(-1*b+sqrt(delt))/(2*a);
  x2=(-1*b-sqrt(delt))/(2*a);
  
  printf("方程的解为:x1=%f\n,x2=%f\n",x1,x2);
  }


int main(int argc, char* argv[]);
return 0;
}
2017-10-26 20:28
君子爱财
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-10-26
  得分:0 
// 1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include  <stdio.h>
#define PI 3.14

int main(int argc, char* argv[])
{
    float r,s,c,v;//r表示圆的半径,s表示圆的面积,c表示圆的周长,v表示圆的体积
    //const float PI=3.14;
    printf("输入圆的半径: " );
    scanf("%f,&r");

    s=PI*r*r;
    printf ("当圆的半径是%f时圆的面积是%f\n",r,s);

    c=2*PI*r;
    printf ("当圆的半径是%f时圆的周长是%f\n",r,c);

    v=4.0/3*PI*r*r*r;
    printf ("当圆的半径是%f时圆的体积是%f\n",r,v);

    return 0;
}
这个也是同样的问题
2017-10-26 20:35
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:254
帖 子:5709
专家分:32265
注 册:2011-1-18
  得分:10 
程序代码:
#include <stdio.h>
#include <math.h>

int main( void )
{
    double a, b, c;
    printf("输入方程的三个系数:");
    if( scanf("%lf%lf%lf",&a,&b,&c)!=3 || a==0 )
    {
        puts( "输入错误,或不是一元二次方程" );
        return 1;
    }

    double delta = b*b-4*a*c;
    if( delta < 0 )
    {
        puts( "此方程无解" );
    }
    else
    {
        double x1=(-b+sqrt(delta))/(2*a);
        double x2=(-b-sqrt(delta))/(2*a);
        printf( "方程的解为: x1=%f, x2=%f\n", x1, x2 );
    }
    return 0;
}
2017-10-27 08:14
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:254
帖 子:5709
专家分:32265
注 册:2011-1-18
  得分:0 
程序代码:
#include <stdio.h>

#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif

int main( void )
{
    double r;
    printf("输入圆的半径: " );
    if( scanf("%lf",&r) != 1 )
    {
        puts( "输入错误" );
        return 1;
    }

    double s = M_PI*r*r;
    printf("当圆的半径是%f时圆的面积是%f\n",r,s);

    double c=2*M_PI*r;
    printf("当圆的半径是%f时圆的周长是%f\n",r,c);

    double v=4.0/3*M_PI*r*r*r;
    printf("当圆的半径是%f时圆的体积是%f\n",r,v);

    return 0;
}
2017-10-27 08:18
君子爱财
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-10-26
  得分:0 
回复 4楼 rjsp
#include<stdio.h>
#include<stdio.h>
#include<math.h>



int main(int argc, char* argv[])
{
    float a,b,c,p,s;//a,b,c为三角形的三条边,s为三角形的面积
    printf ("请输入三角形的三条边:");
    scanf ("%1f%1f%1f",&a,&b,&c);
    if((a+b>c)||(a+c>b)||(b+c>a))
    {
        scanf("p = (a + b + c) / 2;s = (p - a)*(p - b)*(p - c)");
         printf("三角形的面积为:%f",s);


    }
    else
    {
        printf("数据不合法");
   
    }

    return 0;
}
能问一下这个程序为啥输入123时仍有结果吗,结果为0

[此贴子已经被作者于2017-10-27 22:37编辑过]

2017-10-27 22:25
君子爱财
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-10-26
  得分:0 
回复 4楼 rjsp
#include<stdio.h>
#include<stdio.h>
#include<math.h>



int main(int argc, char* argv[])
{
    float a,b,c,p,s;//a,b,c为三角形的三条边,s为三角形的面积
    printf ("请输入三角形的三条边:");
    scanf ("%1f%1f%1f",&a,&b,&c);
    if((a+b>c)||(a+c>b)||(b+c>a))
    {
        scanf("p = (a + b + c) / 2;s = sqrt(p - a)*(p - b)*(p - c)");
         printf("三角形的面积为:%f",s);


    }
    else
    {
        printf("数据不合法");
   
    }

    return 0;
}
能问一下这个程序为啥运行不了吗
2017-10-27 22:25
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1211
专家分:4961
注 册:2016-9-15
  得分:10 
scanf ("%1f%1f%1f",&a,&b,&c);  //不是1  是l
double  lf
float f

早知做人那么辛苦!  当初不应该下凡
2017-10-27 22:35
君子爱财
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-10-26
  得分:0 
回复 7楼 炎天
但是在a+b=c时应该是数据不合法但是显示面积为0这是哪里的错误呢
2017-10-27 22:43
史丶丶
Rank: 1
等 级:新手上路
威 望:1
帖 子:2
专家分:0
注 册:2017-11-2
  得分:0 
//求根公式
#include<stdio.h>
#include<math.h>
main()
{
    float a,b,c,s,x1,x2;
    printf("请输入a,b,c的值:");
    scanf("%f%f%f",&a,&b,&c);
    if((b*b-4*a*c)>=0){
        s=sqrt(b*b-4*a*c);
        x1=(-b+s)/(2*a);
        x2=(-b-s)/(2*a);
        printf("x1=%.2f\nx2=%.2f\n",x1,x2);
    }
    else printf("此方程无根\n");
}
2017-11-08 10:22
liaohs
Rank: 4
等 级:业余侠客
威 望:7
帖 子:61
专家分:292
注 册:2017-11-26
  得分:0 
回复 8楼 君子爱财
由于采用二进制,float精度有限,输入数据保存时有误差,所以计算结果也有误差。
2017-12-03 21:07







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

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