Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Trình biên dịch] Kiểm tra kiểu đồng nhất phần tử mảng

    Cho một mảng (array) gồm các phần tử hằng số, cần xác định kiểu chung của mảng theo luật kiểm tra kiểu đồng nhất phần tử (homogeneity check) có widening.

    Kiểu của mỗi hằng số được phân loại như trong bài toán kiểm tra biểu thức: int, float, bool, hoặc string (chuỗi trong dấu ngoặc kép, không chứa khoảng trắng).

    Luật xác định kiểu mảng:

    • Nếu mảng rỗng (n=0n = 0n=0): kiểu mảng là kiểu rỗng đặc biệt.
    • Nếu tất cả phần tử cùng một kiểu: kiểu mảng chính là kiểu đó.
    • Nếu các phần tử chỉ gồm hai kiểu int và float (không có kiểu nào khác xuất hiện): kiểu mảng được ép kiểu ngầm định thành float (mọi phần tử int được widen thành float).
    • Mọi trường hợp còn lại (ví dụ có bool hoặc string trộn lẫn với kiểu khác) là lỗi kiểu: mảng không đồng nhất.

    Ví dụ: mảng 1 2.5 3 có các kiểu int, float, int → chỉ gồm int và float → kiểu mảng là float.

    • Định dạng đầu vào:

      Dòng đầu tiên là số nguyên nnn (0≤n≤10000 \le n \le 10000≤n≤1000) — số phần tử của mảng. Nếu n>0n>0n>0, dòng tiếp theo (có thể xuống dòng hoặc không, các token chỉ cần cách nhau bởi khoảng trắng) chứa nnn token, mỗi token là một hằng số như mô tả ở trên.

    • Định dạng đầu ra:

      In ra một dòng duy nhất là kiểu của mảng: int, float, bool, string, Empty Array (khi n=0n=0n=0), hoặc Type Error nếu mảng không đồng nhất kiểu.

    Ví dụ:

    Đầu vào:

    1
    5
    

    Đầu ra:

    int
    

    Đầu vào:

    0
    

    Đầu ra:

    Empty Array
    

    Đang tải editor...