啊这啧啧啧 发表于 2023-5-15 22:26:36

输出错误

#include<stdio.h>
#include<stdbool.h>
#include<math.h>
int main(){
        //定义
        float a,b,c;
        float S,min,max,h;
        _Bool flag=0;
        printf("请输入三角形的三边长:");
        scanf("%d %d %d",&a,&b,&c);
       
        if(a+b>c&&a+c>b&&b+c>a){
                flag=1;
        }
       
        if(flag){
                max=a>b?a:b;
                max=max>c?max:c;
                printf("%f",max);
                min=a<b?a:b;
                min=min<c?min:c;
                printf("%f",min);
                //mid=a+b+c-max-min;
               
                h=max*max-0.5*0.5*min*min;
                printf("%f",h);
                S=max*h*0.5;
               
        }
       
        printf("三角形的面积为:%f",S);
        //return 0;
}

isdkz 发表于 2023-5-15 22:26:58

问题在于scanf函数中使用的是%d格式符,而a、b、c都是float类型,应该使用%f格式符。修改为如下代码:

scanf("%f %f %f",&a,&b,&c);


另外,需要注意的是,在计算h的时候,需要使用sqrt函数计算平方根。修改为如下代码:

h=sqrt(max*max-0.5*0.5*min*min);

啊这啧啧啧 发表于 2023-5-15 22:28:42

isdkz 发表于 2023-5-15 22:26
问题在于scanf函数中使用的是%d格式符,而a、b、c都是float类型,应该使用%f格式符。修改为如下代码:



真服了,下意识就定义%d了{:10_247:}

sfqxx 发表于 2023-5-15 22:29:36

这段代码存在多处问题:

1. `scanf` 中输入标识符 `%d` 应该改为 `%f`。

2. 计算变量 `h` 的公式不正确,应该使用勾股定理计算。

3. 输出变量时没有添加换行符,最后使用printf函数输出的“三角形的面积为:”和S值会连在一起。

下面是修改后的代码:

#include<stdio.h>
#include<stdbool.h>
#include<math.h>

int main(){
    //定义
    float a,b,c;
    float S,min,max,h;
    bool flag=0;//使用标准库中的bool类型
    printf("请输入三角形的三边长:");
    scanf("%f %f %f",&a,&b,&c);//修改%d为%f

    if(a+b>c&&a+c>b&&b+c>a){
      flag=1;//可以构成三角形
    }

    if(flag){
      max=a>b?a:b;
      max=max>c?max:c;
      printf("%f\n",max);//添加换行符
      min=a<b?a:b;
      min=min<c?min:c;

      h=sqrt(max*max-0.5*c*0.5*c);//计算h的公式
      printf("%f\n",h);//添加换行符

      S=max*h*0.5;
    }

    printf("三角形的面积为:%f\n",S);//添加换行符

    return 0;
}

sfqxx 发表于 2023-5-15 22:31:24

啊这啧啧啧 发表于 2023-5-15 22:28
真服了,下意识就定义%d了

{:10_244:}

歌者文明清理员 发表于 2023-5-15 23:47:30

sfqxx 发表于 2023-5-15 22:31


我小号登不进去了

sfqxx 发表于 2023-5-16 06:50:35

歌者文明清理员 发表于 2023-5-15 23:47
我小号登不进去了

为什么

歌者文明清理员 发表于 2023-5-16 16:52:53

sfqxx 发表于 2023-5-16 06:50
为什么

密码错误次数过多


奇怪,,我昨天重置过密码啊,还 copy paste 的,不可能错啊
页: [1]
查看完整版本: 输出错误