-
Trình Thực Thi
Trình biên dịch Python Trình biên dịch C++ Trình biên dịch C Trình biên dịch Matplotlib Trình thông dịch Node.js Trình thông dịch PHP Trình biên dịch C# / .NET Trình biên dịch Rust Ruby Interpreter Trình biên dịch Java Trình biên dịch Go Trình biên dịch Kotlin Trình biên dịch Swift Trình biên dịch TypeScript
-
Học lập trình
Trung tâm học Python Ví dụ chạy được, NumPy, pandas và nhiều nội dung khác Trung tâm học C và C++ Con trỏ, bộ nhớ, STL và C++ hiện đại Trung tâm học C#C# cơ bản, OOP, LINQ, async và bài tập .NET Thuật toán Python Tìm kiếm, sắp xếp, đệ quy và trình mô phỏng O(n) Thuật toán C và C++ So sánh cách cài đặt bằng C và C++
- Thử thách
Rank teams from match records. Each record has the form First;Second;result, with no extra spaces. Result is win, loss, or draw from First’s perspective. A win earns 3 points, a draw earns 1 per team, and a loss earns 0. Count matches played, wins, draws, losses, and points for each team that appears. Sort by descending points, then ascending team name (ASCII order).
Return one semicolon-separated row per team: Name;Played;Won;Drawn;Lost;Points. Do not include a header or alignment spaces.
Implement tournament_standings(matches).
Input
matches: Match records, in any order.
Output
Return ranked rows with the six fields described above. Write numbers without leading zeros.
Ràng buộc
0…10,000 valid records. Team names contain 1…30 ASCII letters and are case-sensitive. Each match has two different names. Repeated matches are separate games. Empty input gives an empty result.
Ví dụ
Ví dụ 1
Đầu vào:
matches = ["Falcons;Bears;win", "Bears;Owls;draw"]
Kết quả mong đợi:
["Falcons;1;1;0;0;3", "Bears;2;0;1;1;1", "Owls;1;0;1;0;1"]
Giải thích
Falcons have 3 points from their win. Bears and Owls each have 1 point from the draw, so Bears come first alphabetically. Bears played twice and lost once.
Ví dụ 2
Đầu vào:
matches = ["Zebras;Ants;loss"]
Kết quả mong đợi:
["Ants;1;1;0;0;3", "Zebras;1;0;0;1;0"]
Giải thích
Loss is from Zebras’ perspective: Ants won and receive 3 points. Zebras receive 0.
Tham khảo
-
Example 1 Chưa chạyĐầu vào:
matches = ["Falcons;Bears;win", "Bears;Owls;draw"]Kết quả mong đợi:["Falcons;1;1;0;0;3", "Bears;2;0;1;1;1", "Owls;1;0;1;0;1"]Kết quả của bạn -
Example 2 Chưa chạyĐầu vào:
matches = ["Zebras;Ants;loss"]Kết quả mong đợi:["Ants;1;1;0;0;3", "Zebras;1;0;0;1;0"]Kết quả của bạn
Có 5 kiểm tra ẩn sẽ chạy khi bạn nộp bài.
Trình biên dịch và gỡ lỗi C++ online
Viết, biên dịch, chạy và debug C++ online với breakpoint, xem biến và chạy từng bước bằng GDB trong Server mode.
🚀 2,389,311 tổng số lượt thực thi (97,916 trong tháng này)
Luyện C++ với thử thách lập trình
Giải các bài tập thực tế ngay trên trình soạn thảo này: chạy kiểm thử mẫu, nộp bài và nhận đánh giá code từ AI.
Khám phá theo chủ đề
Học C và C++ song song qua code thực tế, output, mô hình bộ nhớ, cấu trúc dữ liệu, thuật toán và các tính năng C++ hiện đại.
💻 Giới thiệu về Trình chạy C++ trực tuyến này
Trình chạy C++ CodeUtility cho phép bạn viết và chạy mã C++ trực tiếp trên trình duyệt - không cần cài đặt hay thiết lập trình biên dịch. Công cụ này sử dụng một sandbox an toàn hỗ trợ các tiêu chuẩn C++ từ C++11, C++14, C++17, cho đến phiên bản mới nhất.
Công cụ này dùng trình biên dịch C++ thực chạy trên đám mây để biên dịch và thực thi mã của bạn, đảm bảo hành vi chính xác và nhất quán giữa các phiên bản. Bạn có thể thoải mái thử nghiệm các khái niệm cốt lõi của C++ như biến, hàm, vòng lặp, cấu trúc điều kiện, và lập trình hướng đối tượng.
Dù bạn đang chuẩn bị phỏng vấn, học các tính năng C++ hiện đại, hay kiểm chứng logic thuật toán, Trình chạy C++ của CodeUtility mang đến môi trường đơn giản nhưng mạnh mẽ để chạy mã ngay lập tức trên mọi thiết bị.
Không chỉ là công cụ chạy mã
Sử dụng trình soạn thảo nhiều tệp, terminal thực thi biệt lập, thư viện riêng theo môi trường chạy, không gian làm việc lâu dài, tính năng chia sẻ và cộng tác theo thời gian thực ngay trong cùng một trình thực thi.
Cách sử dụng trình thực thi này?
Chọn môi trường chạy, mở hoặc tạo tệp, viết mã rồi nhấn Chạy. Kết quả xuất hiện trong terminal; người dùng đã đăng nhập có thể lưu tệp trong không gian làm việc, cài thư viện và cộng tác qua liên kết chia sẻ.
- Chọn phiên bản rồi chỉnh sửa tệp hiện tại hoặc mở một tệp khác trong không gian làm việc.
- Chạy mã, nhập dữ liệu trong terminal khi được yêu cầu và xem lại lịch sử chạy đã lưu.
- Sử dụng thư viện, công cụ không gian làm việc, chia sẻ và trò chuyện khi tác vụ cần nhiều hơn một đoạn mã.
💡 Cơ bản về C++ & các ví dụ bạn có thể thử ở trên
1. Khai báo biến và hằng số
C++ yêu cầu bạn khai báo kiểu của từng biến. Dùng const để định nghĩa giá trị chỉ đọc, không thể thay đổi sau khi khởi tạo.
int age = 30;
double pi = 3.14159;
char grade = 'A';
std::string name = "Alice";
bool isActive = true;
// Hằng số
const int MAX_USERS = 100;
const std::string COMPANY = "CodeUtility";
// Cố gắng sửa một const sẽ gây lỗi khi biên dịch
// MAX_USERS = 200; // ❌ lỗi
2. Cấu trúc điều kiện (if / switch)
Dùng if, else if, else để rẽ nhánh. Dùng switch cho nhiều giá trị.
int x = 2;
if (x == 1) {
std::cout << "Một\n";
} else if (x == 2) {
std::cout << "Hai\n";
} else {
std::cout << "Khác\n";
}
// Switch-case
switch (x) {
case 1:
std::cout << "Một\n";
break;
case 2:
std::cout << "Hai\n";
break;
default:
std::cout << "Khác\n";
}
3. Vòng lặp
Dùng for, while, và do-while để lặp các khối mã.
for (int i = 0; i < 3; i++) {
std::cout << i << "\n";
}
int n = 3;
while (n > 0) {
std::cout << n << "\n";
n--;
}
4. Mảng
Mảng lưu nhiều phần tử cùng kiểu.
int numbers[3] = {10, 20, 30};
std::cout << numbers[1] << "\n";
5. Thao tác Mảng/Vector
Dùng std::vector cho mảng động.
#include <vector>
std::vector nums = {1, 2, 3};
nums.push_back(4);
nums.pop_back();
for (int n : nums) {
std::cout << n << " ";
}
6. Nhập/Xuất console
Dùng std::cin để nhập và std::cout để xuất.
std::string name;
std::cout << "Nhập tên của bạn: ";
std::cin >> name;
std::cout << "Xin chào, " << name << "\n";
7. Hàm
Hàm nhóm logic có thể tái sử dụng. Dùng tham số và kiểu trả về.
int add(int a, int b) {
return a + b;
}
std::cout << add(3, 4);
8. Map
std::map lưu các cặp khóa-giá trị giống như từ điển.
#include <map>
std::map ages;
ages["Alice"] = 30;
std::cout << ages["Alice"];
9. Xử lý ngoại lệ
Dùng try và catch để xử lý lỗi lúc chạy.
try {
throw std::runtime_error("Đã xảy ra lỗi");
} catch (const std::exception& e) {
std::cout << e.what();
}
10. I/O Tệp
Dùng fstream để đọc và ghi tệp.
#include <fstream>
std::ofstream out("file.txt");
out << "Xin chào tệp";
out.close();
std::ifstream in("file.txt");
std::string line;
getline(in, line);
std::cout << line;
in.close();
11. Xử lý chuỗi
Chuỗi trong C++ hỗ trợ các phương thức như length(), substr(), và find().
std::string text = "Xin chào Thế giới";
std::cout << text.length();
std::cout << text.substr(0, 5);
std::cout << text.find("Thế giới");
12. Lớp & Đối tượng
C++ hỗ trợ lập trình hướng đối tượng thông qua các lớp.
class Person {
public:
std::string name;
Person(std::string n) : name(n) {}
void greet() { std::cout << "Xin chào, tôi là " << name; }
};
Person p("Alice");
p.greet();
13. Con trỏ
Con trỏ lưu địa chỉ bộ nhớ của một biến khác. Dùng & để lấy địa chỉ,
và * để giải tham chiếu (truy cập giá trị tại địa chỉ đó).
int x = 10;
int* ptr = &x;
std::cout << "Giá trị của x: " << x << "\n";
std::cout << "Địa chỉ của x: " << ptr << "\n";
std::cout << "Giá trị từ con trỏ: " << *ptr << "\n";
// Sửa x thông qua con trỏ
*ptr = 20;
std::cout << "x đã được cập nhật: " << x << "\n";
🐞 Cách gỡ lỗi code %{language} online
Dùng trình debug %{language} online để tìm lỗi runtime và logic mà không cần cài compiler hoặc IDE. Server mode biên dịch kèm debug symbols và chạy chương trình bằng GDB.
- Đặt một hoặc nhiều breakpoint cạnh số dòng.
- Chọn Debug để biên dịch và dừng tại breakpoint đầu tiên phù hợp.
- Kiểm tra dòng hiện tại, call stack và các biến.
- Dùng Continue, Step Over, Step Into hoặc Step Out.
- Chọn Stop để kết thúc phiên debug.
Bắt đầu với ví dụ nhỏ có thể tái hiện lỗi và đặt breakpoint ngay trước khi giá trị hoặc luồng điều khiển trở nên bất thường.