01/10/2018, 09:24

Code tìm số bí mật bị sai

  1. Máy tính sẽ chọn ngẫu nhiên một số từ 1 đến 100.
  2. Máy tính sẽ yêu cầu bạn đoán số đó là bao nhiêu.
  3. Máy tính sẽ so sánh số bạn chọn và số « bí mật » đó. Máy tính sẽ gợi ý cho bạn biết số bí
    mật này lớn hay nhỏ hơn số mà bạn đã chọn. Nếu đoán đúng thì chương trình dừng lại.
  4. Nếu bạn đoán sai ở bước 3, thì máy tính lại kêu bạn đoán tiếp.
    5.Và máy tính lại gợi ý số bí mật lớn hơn hay nhỏ hơn.
  5. Và nó vẫn tiếp tục cho đến khi bạn tìm thấy số bí mật đó.
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    int main()
    {
        int Sobimat=0, Sodoan=0;
        const int max=100, min=1;
        srand(time(NULL));
        Sobimat=(rand()%(max-min+1))+min;
        while(Sodoan==Sobimat)
        {
            scanf("%d",&Sodoan);
            if(Sodoan>Sobimat)
            {
                printf("Lon hon");
            }
            else if(0, Sodoan<Sobimat)
            {
                printf("Nho hon!");
            }
            else
            {
                printf("Chuc mung! Ban da doan dung");
            }
        }

        return 0;
    }

đó là bài code của mình mà vẫn bị sai, giúp mình với, thanks

Nguyễn Duy Hùng viết 11:35 ngày 01/10/2018

Sai như thế nào nhỉ, bạn chụp mà hình lên xem. Mà sao có số 0 ngay chỗ else if .

St Marshy viết 11:31 ngày 01/10/2018

mình xóa số 0 rồi, chỉ là viết dư thôi, nhưng vòng lặp không chạy được, khi hiện lên mình chỉ được đoán số 1 lần, rồi bị off chương trình.

Hoàng Trung viết 11:30 ngày 01/10/2018

Điều kiện theo mình nghĩ thì phải là vòng while chạy khi số đoán khác số bí mật, còn lúc đoán đúng rồi thi ko chạy nữa

St Marshy viết 11:25 ngày 01/10/2018

có ai biết không chỉ với? TT

HotaVN viết 11:24 ngày 01/10/2018

mình cũng không nhớ rõ nữa hình như là bạn thiếu một dòng để khi chạy hết chương trình sẽ đợi bạn ấn enter mới tắt :v

St Marshy viết 11:36 ngày 01/10/2018

nhưng mình mới đoán 1 số khi enter thì chỉ hiện bé hơn or lớn hơn rồi tắt chứ không cho mình đoán số tiếp theo, như là vong lặp không chạy ý, mình nghĩ mình sai ở while(Sodoan==Sobimat). Ai giúp mình sửa dòng đó với

Sơn viết 11:34 ngày 01/10/2018

nhưng mình mới đoán 1 số khi enter thì chỉ hiện bé hơn or lớn hơn rồi tắt chứ không cho mình đoán số tiếp theo, như là vong lặp không chạy ý, mình nghĩ mình sai ở while(Sodoan==Sobimat). Ai giúp mình sửa dòng đó với

while(Sodoan != Sobimat)

có nghĩa là khi sodoan chưa bằng số bí mật thì lặp tiếp.

nampham viết 11:28 ngày 01/10/2018

Bạn dùng hàm do while(sobimat != sodoan) là đc

Trường Vũ viết 11:35 ngày 01/10/2018

tại đk 2 xóa số 0 đi, dùng vòng lặp do while là đc

Trường Vũ viết 11:40 ngày 01/10/2018

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc,char** argv)
{
int soBiMat = 0, soHienTai =0,solandoan;
const int MAX= 10, MIN=1;
srand(time(NULL));
soBiMat = (rand() % (MAX - MIN + 1) + MIN);
solandoan=1;
do
{

printf(“So can tim la bao nhieu ? “);
scanf(”%d”,&soHienTai);
if (soBiMat != soHienTai)
{
solandoan++;
if(soBiMat>soHienTai)
printf(“Lon hon !\n”);
else if (soBiMat<soHienTai)
printf(“Nho hon !\n”);
}
else
printf(“Chuc mung ! Ban da tim duoc so bi mat sau %d lan doan \n”,solandoan);
} while (soHienTai!=soBiMat);
}

St Marshy viết 11:37 ngày 01/10/2018

good thế, vậy mình muốn làm với vòng lặp while thì code như nào vậy?

St Marshy viết 11:35 ngày 01/10/2018

hello, mình code lại như này đúng nè.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int Sobimat=0, Sodoan=0;
const int max=100, min=1;
srand(time(NULL));
Sobimat=(rand()%(max-min+1)+min);
printf(“Tim so can tim\n”);
while(Sodoan!=Sobimat)
{
scanf("%d",&Sodoan);
if(Sobimat>Sodoan)
{
printf(“Lon hon\n”);
}
else if(Sobimat<Sodoan)
{
printf(“Nho hon!\n”);
}
else
{
printf(“Chuc mung! Ban da doan dung\n”);
}
}

    return 0;
}
Hoàng Trung viết 11:32 ngày 01/10/2018

Yeah, mình đã nhắc nhở bạn điều kiện vòng lặp ở trên nhưng bạn ko để ý lắm. Bạn nên để ý hơn những lời giải của các bạn phía trên đã đưa ra để tìm được lời giải nhanh hơn cho vấn đề bạn mắc phải :p.

St Marshy viết 11:30 ngày 01/10/2018

uhm! để ý mới thấy Hoàng Trung cũng vào góp ý cho mình 2 bài toán rồi nhỉ, cảm ơn bạn nhé, mĩnh sẽ cố gắp tiếp thu ý kiến của mọi người nhiều hơn

Hoàng Trung viết 11:34 ngày 01/10/2018

cũng vào góp ý cho mình 2 bài toán rồi nhỉ, cảm ơn bạn nhé, mĩnh sẽ cố gắp tiếp thu ý kiến của mọi người nhiều hơn

ok, cố lên nhé

Bài liên quan
0