Không hiểu về vòng lặp do-while

Em đang học loop đến cái do-while này e chưa hiểu lắm ạ. tại sao khi chạy chương trình e nhập 3 vẫn trong khoảng 1-3 mà chương trình không lặp được ạ. hoặc e nhập 0 ngoài khoảng 1-3 thì vẫn lặp được ạ. Mong mọi người thông não ạ

#include <stdio.h>
#include <math.h>
int main()
{
	int i;
	do
	{
		printf("\nMenu:\n1.Tinh dien tich hinh vuong\n2.Tinh giai thua cua mot so\n");
		printf("Moi ban chon 1-2: ");
		scanf("%d", &i);
		
	if(i == 1)
		{
		int length,area;
		printf("Moi ban nhap do dai canh: ");
		scanf("%d",&length);
		area=(int)pow(length,2);
		printf("Dien tich hinh vuong la: %d\n",area);
		}
	else if(i == 2)
		{
		int n,i;
		printf("nhap vao mot so: ");
		scanf("%d",&n);
		long int giai_thua;
		giai_thua = 1;	
		for (i=1;i<=n;i++)
			giai_thua=giai_thua*n;
		printf("giai thua cua so %d la %d",n,giai_thua);
		}
	else printf("Khong phu hop moi ban nhap lai \n");
	i++;	
	}while(i>=1 && i<=3);
}

Dòng i++; trên while kìa bạn :slight_smile:

2 Likes

i++, khi nhập 3 thì i++ thành 4, khi nhập 0 thì i++ thành 1. Thông chưa?

2 Likes

e thông rồi ạ :))) cảm ơn mọi người

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