What is the result displayed on the screen of the following program?

4 phương ánCó giải thích
Đề bài
#include<stdio.h>

int isTriangle(float a, float b, float c)
{
    if ((a>0)&&(b>0)&&(c>0)&&(a<b+c)&&(b<c+a)&&(c<a+b))
        return 1;
    else
        return 0;
}

int main()
{
    float a = 1, b = 1, c = 1.25;
    if (isTriangle(a, b, c))
        printf("%.2f, %.2f, %.2f: a triangle.\n", a, b, c);
    else
        printf("%.2f, %.2f, %.2f: not a triangle.\n", a, b, c);
    return 0;
}

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "1.00, 1.00, 1.25: a triangle". Hàm isTriangle kiểm ba cạnh dương và ba bất đẳng thức tam giác: với a bằng 1, b bằng 1 và c bằng 1.25 thì 1 nhỏ hơn 2.25, 1 nhỏ hơn 2.25 và 1.25 nhỏ hơn 2, nên cả chuỗi phép và cho kết quả đúng và hàm trả về 1. Giá trị khác không được lệnh if trong main coi là điều kiện đúng nên nhánh in a triangle được chạy. Đặc tả %.2f buộc in số thực với đúng hai chữ số sau dấu chấm, vì thế 1 hiện ra thành 1.00 còn 1.25 giữ nguyên. Ý "a, b, c: a triangle" sai vì chuỗi định dạng dùng %.2f nên chỗ đó in giá trị, không in tên biến. Ý "1, 1, 1.25: a triangle" sai vì %.2f không bao giờ bỏ các chữ số thập phân thừa, muốn ra dạng gọn như vậy phải dùng đặc tả khác. Ý "1.00, 1.00, 1.25: not a triangle" sai vì điều kiện tam giác đã thoả nên nhánh else không được chạy.

Cùng phần 4

Xuất hiện trong 2 bộ đề