30/09/2018, 23:31

Giúp em về lập trình C ạ!

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    const int MAX=100, MIN=1;
    int soBiMat, soBanTim;
    srand(time(NULL));
    soBiMat=(MIN+rand()%(MAX-MIN+1));
    printf("So ban can tim la bao nhieu? ");
    scanf("%d", &soBanTim);
    if(soBanTim<soBiMat)
    {
        while(soBanTim<soBiMat)
        {
            printf("Lon hon!
");
            printf("So ban can tim la bao nhieu? ");
            scanf("%d", &soBanTim);
        }
    }
    else if(soBanTim>soBiMat)
    {
        while(soBanTim>soBiMat)
        {
            printf("Nho hon!
");
            printf("So ban can tim la bao nhieu? ");
            scanf("%d", soBanTim);
        }
    }
    else(soBanTim=soBiMat);
    {
        printf("Chuc mung! Ban da tim duoc so bi mat!!!

");
    }
    return 0;
}

Khi em chạy chương trình thì cái số ngẫu nhiên nó cứ rơi vào 50, 70 ,90
Các anh xem dùm em mấy cái dòng code của em có sai xót gì không ạ!

Thanks all!

anon45952904 viết 01:39 ngày 01/10/2018
 while(soBanTim>soBiMat)
        {
            printf("Nho hon!\n");
            printf("So ban can tim la bao nhieu? ");
            scanf("%d", soBanTim);
        }

Hàm scanf("%d", soBanTim); có vẻ không đúng với ý định của bạn

Nguyễn Quốc Cường viết 01:38 ngày 01/10/2018

giờ sửa sao bạn ơi? mình bó tay rồi

anon45952904 viết 01:36 ngày 01/10/2018
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    const int MAX=100, MIN=1;
    int soBiMat, soBanTim;
    srand(time(NULL));
    soBiMat=(MIN+rand()%(MAX-MIN+1));
    printf("So ban can tim la bao nhieu? ");
    scanf("%d", &soBanTim);
    if(soBanTim<soBiMat)
    {
        while(soBanTim<soBiMat)
        {
            printf("Lon hon!\n");
            printf("So ban can tim la bao nhieu? ");
            scanf("%d", &soBanTim);
        }
    }
    else if(soBanTim>soBiMat)
    {
        while(soBanTim>soBiMat)
        {
            printf("Nho hon!\n");
            printf("So ban can tim la bao nhieu? ");
            scanf("%d", &soBanTim);
        }
    }
    else
    {
        printf("Chuc mung! Ban da tim duoc so bi mat!!!\n\n");
    }
    return 0;
}

Bạn thêm dấu & vào soBanTim để scanf truyền giá trị nhập vào thôi mà.

else cuối cùng thì bạn bỏ điều kiện so sánh đi hoặc thêm if vào. Chỗ này lỗi cú pháp.

anon45952904 viết 01:44 ngày 01/10/2018

Mà nhân tiện. Bạn nên đổi tên cái bài tập này là SINH VIÊN ĐÁNH ĐỀ rồi nộp cho thầy. Giống y trang à:joy:

Nguyễn Quốc Cường viết 01:40 ngày 01/10/2018

tức là giờ mình bỏ &soBanTim để giá trị của soBanTim ban đầu không bị thay đổi đúng không?

anon45952904 viết 01:32 ngày 01/10/2018

Mình sửa đoạn code của bạn như trên rồi đấy

Nguyễn Quốc Cường viết 01:46 ngày 01/10/2018

Ok, thank you very nhiều nha!

Nguyễn Quốc Cường viết 01:42 ngày 01/10/2018
#include <stdlib.h>
#include <time.h>

int main()
{
    const int MAX=100, MIN=1;
    int soBiMat, soBanTim;
    srand(time(NULL));
    soBiMat=(MIN+rand()%(MAX-MIN+1));
    printf("So ban can tim la bao nhieu? ");
    scanf("%d", &soBanTim);
    if(soBanTim<soBiMat)
    {
        while(soBanTim<soBiMat)
        {
            printf("Lon hon!\n");
            printf("So ban can tim la bao nhieu? ");
            scanf("%d", &soBanTim);
        }
    }
    else if(soBanTim>soBiMat)
    {
        while(soBanTim>soBiMat)
        {
            printf("Nho hon!\n");
            printf("So ban can tim la bao nhieu? ");
            scanf("%d", soBanTim);
        }
    }
    else(soBanTim=soBiMat);
    {
        printf("Chuc mung! Ban da tim duoc so bi mat!!!\n\n");
    }
    return 0;
}

Xong rồi bạn ơi

anon45952904 viết 01:36 ngày 01/10/2018
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    const int MAX=100, MIN=1;
    int soBiMat = 0, soBanTim = 0;
    srand(time(NULL));
    soBiMat=(MIN+rand()%(MAX-MIN+1));

    do
    {
         printf("So ban can tim la bao nhieu? ");
         scanf("%d", &soBanTim);
        if(soBanTim < soBiMat)
        {

                printf("Lon hon!\n");
               

        }
        else if(soBanTim > soBiMat)
        {

                printf("Nho hon!\n");
             
        }
        else if (soBanTim == soBiMat)
        {
                printf("Chuc mung! Ban da tim duoc so bi mat!!!\n\n");
        }
    }while(soBanTim!=soBiMat);

    return 0;
}

Mình nghĩ là bạn nên viết như đoạn mới này trông có vẻ ổn hơn này.

Nguyễn Quốc Cường viết 01:45 ngày 01/10/2018

Mình chưa thử vòng lặp do…while nhưng thấy dòng code của bạn thì mình thấy rõ ràng và dễ hiểu hơn nhiều

Cảm ơn nhiều nha!

Bài liên quan
0