Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Điều kiện trong vòng lặp while

  1. #1
    Ngày gia nhập
    03 2011
    Bài viết
    12

    Wink Điều kiện trong vòng lặp while

    Đề bài cho như thế này : Viết chương trình nhập mã pin (1111), nếu đúng thì báo thành công, sai thì nhập lại, nếu quá 3 lần thì thoát chương trình. Em có code thế này :
    Code:
    #include <conio.h>
    #include <stdio.h>
    void main()
    {
       int pin,t;
       clrscr();
       printf("Nhap so pin: ");
       scanf("%d",&pin);
       if (pin==1111)
       	printf("Dang nhap thanh cong");
       else
       	t=0;
       	while(pin!=1111||t<2)
            {
          	   printf("Nhap sai pin, xin nhap lai: ");
               scanf("%d",&pin);
               if(pin!=1111)
             	t=t+1;
             	if (t==2)
             		printf("Da nhap sai 3 lan, ket thuc");
               else
          		printf("Dang nhap thanh cong");
            }
       getch();
    }
    Không biết vì sao mà sau khi nhập sai (1234), em nhập lại pin đúng (1111), nó không thoát vòng lặp mà vẫn tiếp tục báo : "Nhap sai pin, xin nhap lai: ". Em đang tập tành code, mong anh chi hướng dẫn giùm.

  2. #2
    Ngày gia nhập
    08 2011
    Bài viết
    16

    Trích dẫn Nguyên bản được gửi bởi contra1221 Xem bài viết
    Đề bài cho như thế này : Viết chương trình nhập mã pin (1111), nếu đúng thì báo thành công, sai thì nhập lại, nếu quá 3 lần thì thoát chương trình. Em có code thế này :
    Code:
    #include <conio.h>
    #include <stdio.h>
    void main()
    {
       int pin,t;
       clrscr();
       printf("Nhap so pin: ");
       scanf("%d",&pin);
       if (pin==1111)
       	printf("Dang nhap thanh cong");
       else
       	t=0;
       	while(pin!=1111||t<2)
            {
          	   printf("Nhap sai pin, xin nhap lai: ");
               scanf("%d",&pin);
               if(pin!=1111)
             	t=t+1;
             	if (t==2)
             		printf("Da nhap sai 3 lan, ket thuc");
               else
          		printf("Dang nhap thanh cong");
            }
       getch();
    }
    Không biết vì sao mà sau khi nhập sai (1234), em nhập lại pin đúng (1111), nó không thoát vòng lặp mà vẫn tiếp tục báo : "Nhap sai pin, xin nhap lai: ". Em đang tập tành code, mong anh chi hướng dẫn giùm.
    Theo mình, thi khi bạn nhập pin sai sau đó nhập lại mã pin đúng mà ko thoát khỏi vòng lặp while vì khi đó t tăng thêm 1 giá trị bằng 1 và t <2 thỏa mãn điều kiện while (pin!=1111||t<2) nên nó ko thoát đc.
    Đây là code của mình:
    Code:
    #include"conio.h"
    #include"stdio.h"
    void main()
    {
    int pin, t;
    clrscr();
    t=1;
    do	{
    	printf("\nXin moi ban nhap ma pin=");
    	scanf("%d",&pin);
    	if(pin!=1111)
    		{
    			printf("\nBan nhap sai ma pin lan %d",t);
    			t++;
    		}
    	else if(pin==1111)
    		{
    		printf("\nDang nhap thanh cong");
    		break;
    		}
    	if(t==4)
    		{
    		printf("\nBan da dang nhap sai 3 lan an phim bat ky de thoat khoi chuong trinh");
    		break;
    		}
    	}while (pin!=1111);
    getch();
    }
    Đã được chỉnh sửa lần cuối bởi tiennt : 16-09-2011 lúc 08:50 PM.

  3. #3
    Ngày gia nhập
    03 2011
    Nơi ở
    Bình Dương, Hồ Chí Minh
    Bài viết
    392

    Trích dẫn Nguyên bản được gửi bởi contra1221 Xem bài viết
    Không biết vì sao mà sau khi nhập sai (1234), em nhập lại pin đúng (1111), nó không thoát vòng lặp mà vẫn tiếp tục báo : "Nhap sai pin, xin nhap lai: ". Em đang tập tành code, mong anh chi hướng dẫn giùm.
    Lý do: khi bạn nhập sai lần đầu, nó sẽ chạy vô vòng while lần đầu tiên, lúc này t=0, lần nhập 2, bạn nhập đúng 1111, thì chương trình sẽ thực hiện câu lệnh:
    Code:
     else
         printf("Dang nhap thanh cong");
    Nhưng bạn để ý là biến t của bạn vẫn là 0 mà là 0 thì vẫn nhỏ hơn 2 => điều kiện while vẫn thỏa => vẫn chạy vòng lặp=> lại bắt nhập mã

  4. #4
    Ngày gia nhập
    03 2011
    Bài viết
    12

    Cảm ơn mọi người, mình hiểu ra rồi

  5. #5
    Ngày gia nhập
    05 2010
    Bài viết
    4

    Mặc định Điều kiện trong vòng lặp while

    bạn có thể up lại cái code bạn đã hoàn thiện cho mình tham khảo được ko? contra1221
    minh phai tu co gang thoi

Các đề tài tương tự

  1. Kỹ thuật C++ Nhập và gán 1 kí tự trong vòng lặp sao cho khi không nhập kí tự thì vòng lặp lại chạy tiếp.
    Gửi bởi note194 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 12-08-2013, 09:11 PM
  2. Bài tập C++ cách sử dụng số liệu trong vòng lặp do while
    Gửi bởi missyoune trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 13-12-2011, 10:42 AM
  3. Lập trình C++ giá trị của xâu trong vòng lặp và ngoài vòng lặp khác nhau
    Gửi bởi virus93ttll trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 17
    Bài viết cuối: 14-05-2011, 02:43 PM
  4. Code cài đặt DSLK đơn vòng và kép vòng trên C++. Thêm 1 phần tử sau 1 phần tử trong DSLK đơn/kép
    Gửi bởi hoanghieu.fit.hcmus trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 2
    Bài viết cuối: 09-04-2011, 02:54 PM
  5. làm sao để đưa các số trong mảng vào vòng lặp for ??
    Gửi bởi thanthoai101010 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 17-11-2010, 02:27 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn