1163028233 发表于 2020-11-1 22:24:14

为什么是%5.2f和%7.2f

书上例题求ax2+bx+c=0方程的根

1163028233 发表于 2020-11-1 22:25:26

#include <math.h>
void main()
{
        float a , b , c , disc, p , q , x1 , x2;
        scanf("a = %f, b = %f, c = %f", &a , &b , &c);
        disc = b*b-4*a*c;
        p = -b/(2*a);
        q = sqrt(disc)/(2*a);
        x1 = p+q;
        x2 = p-q;
        printf("\nx1 = %5.2f\nx2 = %5.2f\n" , x1 , x2);
}
为什么是x1=%5.2f
还有书上的三角形面积为什么是a=%7.2f

Twilight6 发表于 2020-11-1 22:37:27

1163028233 发表于 2020-11-1 22:25
#include
void main()
{




%5.2f 表示的意思是最终的结果保留五个字符宽度,保留两位小数

%7.2f 表示的意思是最终的结果保留七个字符宽度,保留两位小数

昨非 发表于 2020-11-1 22:37:31

输出格式,浮点型
"%fm.n" m为总位数,n为小数点后的位数

风过无痕1989 发表于 2020-11-1 22:39:17

1163028233 发表于 2020-11-1 22:25
#include
void main()
{


题目的要求而已,没有什么特别的意义。%5.2f、%7.2f 分别表示五位数带两位小数,和七位数带两位小数

#include<stdio.h>
#include<math.h>
#define EXP 0.00000001         // 由于精度的原因,float、double类型不能比较大小
int main()
{
   double a = 0.0;
   double b = 0.0;
   double c = 0.0;
   double disc,p,q;
   scanf_s("%lf%lf%lf",&a,&b,&c);
   if((a >= -EXP) && (a <= EXP))
   {
      printf("不是一元二次方程\n");
   }
   else
    {
      disc = b * b - 4 * a * c;
   }
   
    p = - b / (2 * a);
    q = sqrt(disc)) / (2 * a);
    if((disc >= - EXP) && (disc <= EXP))
    {
      printf("有两个相同的实根:x = %.2lf\n",p);
    }
    else if(disc > 0.0)
    {
      printf("x1 = %.2lfx2 = %.2lf\n",p + q,p - q);
    }
    else
    {
      printf("有两个共轭的复根: %.2lfi%.2lfi\n",p + q,p - q);
    }

    return 0;
}

1163028233 发表于 2020-11-1 23:02:55

卧槽,实习版主都来了,各位这个最佳我就给版主了,放心我这个新手一定还有很多问题要问,以后的最佳再给你们吧,谢谢各位的回答了

abc1234567890 发表于 2021-1-23 21:00:10

为什么我编译没错误运行有错误啊,我找不出,大哥们帮帮我
_main already defined in asdfaf.obj
one or more multiply defined symbols found

abc1234567890 发表于 2021-1-23 21:02:22

g

页: [1]
查看完整版本: 为什么是%5.2f和%7.2f