30/09/2018, 19:03

lỗi code C cơ bản nhờ mọi người giúp

em nhập loại phòng thì được nhưng khi nhập số ngày ở thì nó bị lỗi , mong mọi người giúp em

/*Tinh tien thue phong khi biet so ngay thue va loai phong (mot trong 3 loai A, B hoac C voi qui dinh nhu sau: 
    -    Loai A: 250.000 d/ngay
    -    Loai B: 200.000 d/ngay
    -    Loai C: 150.000 d/ngay
 Neu thue qua 12 ngay thi phan tram duoc giam tren tong so tien (tinh theo gia qui dinh) la: 
        10% cho phong loai A
        8 % cho phong loai B hoac C   */
#include "stdio.h"
#include "conio.h"

void main()
{
    int Don_gia_loai_A=250000, Don_gia_loai_B=20000, Don_gia_loai_C=150000; 
    char Loai_phong;
    float So_ngay_thue, Tong_tien;
    // Khoi tao gia tri cho moi don gia
    
    printf("Chuong trinh tinh tien phong cho tung loai phong theo so ngay thue.
Xin quy khach nhap loai phong (A, B, hoac C): ");
    scanf_s("%c", &Loai_phong);
    printf("
Xin nhap vao so ngay thue: ");
    scanf_s("%f", &So_ngay_thue);
    switch (Loai_phong)
    {
    case 'A':
        Tong_tien = Don_gia_loai_A    *    So_ngay_thue;
        if (So_ngay_thue > 12)
            Tong_tien = Tong_tien * 0.9;
        break;
    case 'B':
        Tong_tien = Don_gia_loai_B    *    So_ngay_thue;
        if (So_ngay_thue > 12)
            Tong_tien = Tong_tien * 0.92;
        break;
    case 'C':
        Tong_tien = Don_gia_loai_C    *    So_ngay_thue;
        if (So_ngay_thue > 12)
            Tong_tien = Tong_tien * 0.92;
        break;
    default:
        break;
    }
    printf("
Tong tien thue la: %.2f", Tong_tien);
    _getch();
}
Pham Van Hai viết 21:08 ngày 30/09/2018

scanf_s("%c", &Loai_phong);

Sửa thành:

scanf_s("%c", &Loai_phong, 1);

anon51853234 viết 21:05 ngày 30/09/2018

dạ e, em được rồi anh ạ . anh giải thích giúp em được không

Pham Van Hai viết 21:12 ngày 30/09/2018

Bạn đọc thêm ở đây.

Hi bạn, Do tất cả dữ liệu khi nhập vào máy tính sẽ được lưu trước trong vùng nhớ đệm stdin sau đó mới truyền giá trị vào cho từng biến thông qua lệnh gán scanf. Trong trường hợp bạn nhập dư dữ liệu, các giá trị còn tồn trên stdin sẽ được chuyển tiếp cho các lệnh gán tiếp theo. Đặc biệt, mỗi lần kết thúc lệnh nhập của bạn bằng phím enter đều lưu trên vùng nhớ đệm dưới dạng kí tự \n. Đối với kiểu số nguyên %d , lệnh scanf chỉ tra các giá trị có kiểu số nguyên nên sẽ bỏ qua kí tự \n. Do vậy,…

anon51853234 viết 21:04 ngày 30/09/2018

em cảm ơn anh nhiều:heart_eyes:

Bài liên quan
0