

Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
# Khởi tạo
so_may = 50
may = [0] * so_may # 0: tắt, 1: đang dùng
dien_nang = [0.0] * so_may # kWh
so_lan_dung = [0] * so_may
while True:
print("\n===== MENU =====")
print("1. Dùng máy")
print("2. Rời máy")
print("3. In trạng thái máy")
print("4. In điện năng từng máy")
print("5. Tổng điện năng và tiền")
print("6. Máy dùng nhiều nhất/ít nhất")
print("0. Thoát")
chon = int(input("Chọn: "))
if chon == 1:
m = int(input("Nhập số máy (1-50): ")) - 1
if may[m] == 0:
may[m] = 1
dien_nang[m] += 0.4 # mỗi lần dùng 0.4 kWh
so_lan_dung[m] += 1
print("-> Đã cấp máy")
else:
print("-> Máy đang bận!")
elif chon == 2:
m = int(input("Nhập số máy: ")) - 1
may[m] = 0
print("-> Máy đã rỗi")
elif chon == 3:
for i in range(so_may):
tt = "Đang dùng" if may[i] == 1 else "Tắt"
print(f"Máy {i+1}: {tt}")
elif chon == 4:
for i in range(so_may):
print(f"Máy {i+1}: {dien_nang[i]} kWh")
elif chon == 5:
tong = sum(dien_nang)
tien = tong * 750
print(f"Tổng điện năng: {tong} kWh")
print(f"Tiền điện: {tien} VND")
elif chon == 6:
max_dung = max(so_lan_dung)
min_dung = min(so_lan_dung)
print("Máy dùng nhiều nhất:")
for i in range(so_may):
if so_lan_dung[i] == max_dung:
print(f"Máy {i+1}")
print("Máy dùng ít nhất:")
for i in range(so_may):
if so_lan_dung[i] == min_dung:
print(f"Máy {i+1}")
elif chon == 0:
break
thấy hay = 5 sao + timmmmmmmm
Hãy giúp mọi người biết câu trả lời này thế nào?
#include <stdio.h>
#define MAX_MAY 50
#define CONG_SUAT 400
#define GIA_DIEN 750
typedef struct {
int trangThai;
int soLanSuDung;
} MayTinh;
void inTrangThai(MayTinh may[]) {
for (int i = 0; i < MAX_MAY; i++) {
printf("Máy %d: %s\n", i + 1, may[i].trangThai ? "Đang sử dụng" : "Rỗi");
}
}
void inDienNang(MayTinh may[]) {
int tongDienNang = 0;
for (int i = 0; i < MAX_MAY; i++) {
if (may[i].trangThai) {
tongDienNang += CONG_SUAT;
}
}
printf("Điện năng tiêu thụ tích lũy: %d Watt\n", tongDienNang);
printf("Tổng điện năng tiêu thụ: %.2f KW\n", tongDienNang / 1000.0);
printf("Tiền điện thanh toán: %.2f VNĐ\n", (tongDienNang / 1000.0) * GIA_DIEN);
}
void inMaySuDungNhieuNhat(MayTinh may[]) {
int max = 0, min = MAX_MAY, maxIndex = -1, minIndex = -1;
for (int i = 0; i < MAX_MAY; i++) {
if (may[i].soLanSuDung > max) {
max = may[i].soLanSuDung;
maxIndex = i;
}
if (may[i].soLanSuDung < min) {
min = may[i].soLanSuDung;
minIndex = i;
}
}
printf("Máy sử dụng nhiều nhất: Máy %d\n", maxIndex + 1);
printf("Máy sử dụng ít nhất: Máy %d\n", minIndex + 1);
}
int main() {
MayTinh may[MAX_MAY] = {0};
int luaChon, soHieu;
while (1) {
printf("1. Dùng máy\n2. Rời máy\n3. In trạng thái máy\n4. In điện năng tiêu thụ\n5. In máy sử dụng nhiều nhất và ít nhất\n6. Thoát\n");
printf("Chọn chức năng: ");
scanf("%d", &luaChon);
switch (luaChon) {
case 1:
printf("Nhập số hiệu máy (1-%d): ", MAX_MAY);
scanf("%d", &soHieu);
if (may[soHieu - 1].trangThai == 0) {
may[soHieu - 1].trangThai = 1;
may[soHieu - 1].soLanSuDung++;
printf("Máy %d đã được cấp.\n", soHieu);
} else {
printf("Máy %d đang được sử dụng.\n", soHieu);
}
break;
case 2:
printf("Nhập số hiệu máy (1-%d): ", MAX_MAY);
scanf("%d", &soHieu);
if (may[soHieu - 1].trangThai == 1) {
may[soHieu - 1].trangThai = 0;
printf("Máy %d đã về trạng thái rỗi.\n", soHieu);
} else {
printf("Máy %d đã rỗi.\n", soHieu);
}
break;
case 3:
inTrangThai(may);
break;
case 4:
inDienNang(may);
break;
case 5:
inMaySuDungNhieuNhat(may);
break;
case 6:
return 0;
default:
printf("Lựa chọn không hợp lệ.\n");
}
}
return 0;
}
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin