Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
Bắt đầu
Gán cho số bí mật một giá trị ngẫu nhiên trong khoảng từ 1 - 100
Hỏi và nhận giá trị từ bàn phím, lưu vào biến trả lời
Hiển thị số bí mật trong 2 giây
Hiển thị số trả lời trong 2 giây
Kết thúc
Tham khảo:
1. Theo kịch bản, biến số lần đoán sẽ thay đổi trong tình huống nào?
Lỗi được thẻ hiện ở việc chương trình hiển thị sai giá trị của số lần đoán.
2. Những khối lệnh nào làm thay đổi biến số lần đoán?
Số lần đoán cần phải tăng 1 đơn vị mỗi khi người chơi nhập một giá trị số (đoán). Điều này xảy ra ở các câu lệnh (4). (7) và (8).
Tuy nhiên, có thể thấy rằng, mặc dù (9) tăng giá trị của số lần đoán sau khi (7) hoặc (8) được thực hiện, nhưng không có lệnh nào như thế sau khối lệnh (4) cả
3. Có điều gì khác nhau giữa kịch bản và những khối lệnh tương ứng?
a. Tập trung vào những khối lệnh trực tiếp gây ra lỗi và những khối lệnh liên quan lôgic đến nó theo các cấu trúc điều khiển.
b. Chạy chương trình từng bước, kết hợp theo dõi sự thay đổi của các biến, các giá trị đầu ra và so sánh với các giá trị tính được theo cách thủ công.
program DoanSo;
uses crt;
var
low, high, guess, answer: integer;
response: char;
begin
clrscr;
low := 1;
high := 120;
writeln('Chon mot so tu 1 den 120 va ghi so do ra giay.');
writeln('Nhan phim bat ky khi san sang.');
readln;
repeat
guess := (low + high) div 2; // Đoán số trung bình của khoảng
writeln('So cua ban la ', guess, ' phai khong? (d/c/t)');
readln(response);
// Kiểm tra phản hồi từ người chơi
case response of
'd': begin // Trường hợp đoán đúng
writeln('May tinh da doan dung so cua ban!');
end;
'c': begin // Trường hợp số đoán cao hơn
high := guess - 1;
end;
't': begin // Trường hợp số đoán thấp hơn
low := guess + 1;
end;
end;
until response = 'd'; // Lặp cho đến khi đoán đúng
readln;
end.
( Các phần câu in đậm là các phần mình giải thích về code cho bạn dễ hiểu, không cần cho thiết nên khi chạy chương trình không cần nhé ! )
#include<bits/stdc++.h>
using namespace std;
int main() {
int T, n;
cin>>T;
for(int t=0;t<T;t++){
int n,k,a,i;
cin>>n>>k;
int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
int ans=0;
int c=0;
int sum=0;
int c0=0;
int c1=0;
int c2=0;
for(int i=0;i<n;i++){
sum+=a[i];
}
for(int i=0;i<n;i++){
if(sum<k && i!=0){
sum+=a[i]-1;
}
}
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
int sum=0;
for(int l=i;l<j;l++){
sum+=a[l];
}
if(sum==k){
c0=i;
c1=j;
}
}
}
printf("Case %d : %d - %d (c0,c1)\n",t+1,c*n+c0,c*n+c1);
++c;
}
return 0;
}
Theo kịch bản, trò chơi sẽ thông báo số lần đoán khi người chơi đoán đúng số bí mật. Tuy nhiên, khi chạy thử chương trình, em sẽ thấy số lần đoán mà máy tính hiển thị luôn kém số lần thực tế mà người chơi đã đoán một đơn vị.