Vấn đề Hackerrank Day 2

Chuyện là dạo này buồn đời nên chuyển qua cày hackerrank, nhưng vấn đề này thì không biết ai sai.

Yêu cầu đề bài:

Given the meal price (base cost of a meal), tip percent (the percentage of the meal price being added as tip), and tax percent (the percentage of the meal price being added as tax) for a meal, find and print the meal’s total cost.

Bài làm của em:

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;


int main() {
    /* Enter your code here. Read input from STDIN. Print output to STDOUT */
    int mealCost;
    int tipPercent;
    int taxPercent;
    double tip;
    double tax;
    int totalCost;
  
    cin >> mealCost;
    cin >> tipPercent;
    cin >> taxPercent;
    
    tip= mealCost*tipPercent/100;
    tax= mealCost*taxPercent/100;
    
    totalCost= mealCost+tip+tax;
    
    cout << "The total meal costs " << totalCost << " dollars" << endl; 
    
    return 0;
}

Và run output của hackerrank:

Và khi em compiler g++:

Mặc dù biết chưa làm tròn lên được 15 nhưng với kết quả kia của hackerrank thì quá phi lí đi, mong được chỉ giáo :disappointed_relieved:

Để ý mealCost phải là double. Với lại thớt sửa xong rồi bấm dịch lại xem.

2 Likes

Vẫn chưa hiểu tại sao totalcost lại là int. À, với lại 12.00 là float mà

1 Like

khi em test cả doublefloat dành cho mealCost nhưng…

@thanhtrung2314 : em mặc định số thập phân là double, còn số nguyên là int :slight_smile: còn totalCost xài int là để khỏi tốn công làm tròn

Thiếu dấu chấm câu kìa :grin:

2 Likes

Dùng int mà làm tròn là bậy rồi em :slight_smile:.
Một cách chính xác thì khi dùng int là lấy phần nguyên.

em ghi nhầm :v để lấy phần nguyên do nhìn output mẫu, nhưng phát hiện là người ta đòi làm tròn, phải ghi thêm code rồi

Solved! Code mẫu cho bác nào muốn tham khảo ^^ (chắc không ai cần đâu :v)

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;


int main() {
    /* Enter your code here. Read input from STDIN. Print output to STDOUT */
    double mealCost;
    double tipPercent;
    double taxPercent;
    double tip;
    double tax;
    double totalCost;
  
    cin >> mealCost;
    cin >> tipPercent;
    cin >> taxPercent;
    
    tip= mealCost*tipPercent/100;
    tax= mealCost*taxPercent/100;
    
    totalCost= mealCost+tip+tax;
    
    cout << "The total meal cost is " << round(totalCost) << " dollars." << endl; 
    
    return 0;
}
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?