Video Ngôn Ngữ C - 18 - Vòng lặp: do while

c
video

(Lê Trần Đạt) #1

#Đăng ký khóa học C++ cơ bản 2016 ( NEW ) tại đây :
#Thông tin về khóa học xem tại đây :

-Sự khác biệt giữa 2 khóa học cũ và mới :
+Khóa học C++ cơ bản 2016 là khóa học mới, được đầu tư nhiều hơn từ nội dung, phương pháp học, cách học hiệu quả.
+Trong khóa học còn có nhiều kiến thức mới như thực hành trên HackerRank, thực hành trên Codefights và Đạt nghĩ mọi người nên học khóa học mới, bởi vì đây là kiến thức mới, phù hợp với hiện tại… Mặt khác âm thanh cũng tốt hơn nhiều so với khóa học cũ giúp đỡ việc lắng nghe và hiểu được tốt hơn.


Tổng hợp các video hướng dẫn lập trình C của Lê Trần Đạt
Vòng lặp quan trọng mà đang hoang mag
(Thanh Nguyen Trung) #2

Mọi người cho mình hỏi bài tập này với:
Giả sử có 1 game, mình muốn sau khi chơi xong, thì người chơi có thể chơi lại hay không?

int main()
{
    int tieptuc = 1;
    char yes_or_no;
    do
    {
        //game;
        printf("ban co muon choi lai khong?";
        scanf("%c",&yes_or_no);
        if(yes_or_no = 'y')
        {
            tieptuc = 1;
        }
        else
        {
            tieptuc = 0;
        }
    }
    while (tieptuc = 1);
}

=> Đoạn code trên của mình sai ở đâu?


(Lê Trần Đạt) #3

sửa lại == chứ không phải =


(Thanh Nguyen Trung) #4

Okie. Mình cảm ơn. Cho mình hỏi thêm một chút. Mình có đoạn code sau:

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

int main()
{
    int tieptuc;
    char yes_or_no;
    do
    {
        printf("Hello, chao ban!\n");//game
        system("pause");
        printf("Ban co nghe toi noi khong?\n");
        scanf("%c",&yes_or_no);
        if(yes_or_no == 'n')
        {
            tieptuc = 1;
        }
        else
        {
            tieptuc = 0;
        }
    }
    while (tieptuc == 1);
}

Mục đích của mình là khi người A nói: “Hello, chào bạn. Bạn có nghe tôi nói không?”
Người B nếu nghe thì nhập “y” thì kết thúc hàm => Cái này thì OK.
Nhưng khi người B không nghe thì nhập “n”. Cứ thế người A lại hỏi lại, B lại không nghe.
=> Tại sao vòng lặp của mình chỉ chạy có 2 lần??? Đến lần thứ 2 thì nó tự thoát kết thúc hàm.


(Khoa Nguyen) #5

Không biết tí gì về C như mà bạn đang khai báo biến tieptuc vô ích.

Sao không check điều kiện cho yes_or_no == 'n' rồi lặp ?


( Ngô Doãn Tuấn) #6

bạn chưa xóa bộ nhớ đệm nên [quote=“thanhnt, post:4, topic:76”]
scanf("%c",&yes_or_no);
[/quote]

sẽ nhận phím bất kí trước đó
Sửa

        fflush(stdin);
        scanf("%c",&yes_or_no);

(Thanh Nguyen Trung) #7

Oh, chuẩn rồi. Thank you. :smiley:


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?