Tính số vòng lặp trong C

Các anh cho em hỏi cách thức tính số lần lặp của vòng lặp.
Đề bài:Tạo một số bất kì từ 1–>100;em đã tạo được rồi;
Đoán số ngẫu nhiên máy tính vừa chọn.Nếu số bạn nhập lớn hơn thì may tinh se in ra “Lớn hơn”.Nếu bé hơn máy tính in ra “BÉ hơn”.
Chương trình sẽ kết thúc khi bank tìm được số máy tinh lựa chọn,và vòng lặp kết thúc.
Cái em hỏi ở đây là:em muốn tìm số lần đoán cho đến lúc đoán đúng số đó.Các anh đã làm hướng dẫn giúp em

Dùng 1 biến để đếm thôi bạn :smiley: mỗi lần đoán sai thì tăng biến đếm đó lên :smiley:

2 Likes

Bạn có thể nói cụ thể hơn được không.Mình chưa hiểu rõ phần này

Bạn khởi tạo 1 biến là x = 0 chẳng hạn. Bạn tăng x sau mỗi lần nhập trong vòng lặp là được.

1 Like

Bạn xem trong tài liệu này, trang 104 nhá, viết rất chi tiết về bài tập này


À mình nhầm, trong này chỉ có câu hỏi mà không có đáp án :smile:

Bạn có thể làm một vòng lặp while với điều kiện lặp là soLanDoan < GIOI_HAN_SO_LAN_DOAN, sau mỗi lần đoán thì bạn tăng soLanDoan lên 1, soLanDoan++;

1 Like

Em lam duoc roi,em cam on anh rat nhieu

1 Like
#include<stdio.h>
#include<stdlib.h>
int main()
{
int sobimat = 0,sohientai = 0;
const int MAX = 100,MIN = 1;
srand(time(NULL));
sobimat =(rand()%(MAX-MIN+1)+MIN);
do
{ 
printf("So can tim la bao nhieu ?\n ");
scanf("%d",&sohientai);
if(sobimat>sohientai)
printf("Lon hon !");
else if(sobimat<sohientai)
printf("Nho hon")
else
printf("Chuc mung ban da doan dung");
}
while(sobimat=sohientai);
return 0;
}

Tập suy luận đi, nếu muốn tìm số lần lặp thì bạn phải làm như thế nào, nếu thì cách làm đó được thì bạn sẽ nói với máy tính của bạn làm như thế.

sobimat = 1 + rand() % 100;
Tui nghĩ sẽ đơn giản hơn nhỉ

Không nên sử dụng hằng số không tên :smiley:

1 Like
// Test program: Lon hon hay nho hon, su dung ham chon so ngau nhien rand().
// Mode : 2 player.

#include<stdio.h>
#include<stdlib.h> // srand(),rand()
#include<time.h> // time(NULL)

void main()
{
	int mode;
	int soHienTai_NguoiChoi_1=0, soHienTai_NguoiChoi_2=0 ;
	int soBiMat=0, soHienTai=0, counter=0 ;
	int tieptucGame=1 ; // bien so dang Boolean
	const int MAX=100, MIN=1 ;
	srand(time(NULL));
	
	while(tieptucGame)
	{
		soBiMat=MIN + rand()%(MAX-MIN-1);// Tao 1 so ngau nhien: 1->100
		printf("So bi mat : %d \n",soBiMat);
		printf("Chon numbers player: ");
		scanf("%d",&mode);
		switch(mode)
		{
			case 1:
				{
					do
					{
						printf("So can tim la bao nhieu ? ");
						scanf("%d",&soHienTai);
						counter++;
						//So sanh so hien tai voi so bi mat
						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 trong %d lan doan !!!\n", counter);
						
					} while (soHienTai!=soBiMat);
						
					printf(" Ban co muon choi mot van khac khong ?\n Neu tiep tuc moi chon 1 : ");
					scanf("%d",&tieptucGame);
					
					if(tieptucGame==0)
					printf(" Game Over ");
					break;	
				}
			
			case 2:
				{
					do
					{
						printf("So player 1: ? ");
						scanf("%d",&soHienTai_NguoiChoi_1);
						printf("So player 2: ? ");
						scanf("%d",&soHienTai_NguoiChoi_2);
						counter++;
						//So sanh so hien tai nguoi choi 1 voi so bi mat
						if (soBiMat>soHienTai_NguoiChoi_1)
						printf("Lon hon !\n");
						else if (soBiMat<soHienTai_NguoiChoi_1)
						printf("Nho hon !\n");
						else
						printf("Chuc mung player 1 ! Ban da tim duoc so bi mat trong %d lan doan !!!\n", counter);
						
						//So sanh so hien tai nguoi choi 1 voi so bi mat
						if (soBiMat>soHienTai_NguoiChoi_2)
						printf("Lon hon !\n");
						else if (soBiMat<soHienTai_NguoiChoi_2)
						printf("Nho hon !\n");
						else
						printf("Chuc mung player 2 ! Ban da tim duoc so bi mat trong %d lan doan !!!\n", counter);
						
						} while ((soHienTai_NguoiChoi_1!=soBiMat)&&(soHienTai_NguoiChoi_2!=soBiMat));
					
				printf(" Ban co muon choi mot van khac khong ?\n Neu tiep tuc moi chon 1 : ");
				scanf("%d",&tieptucGame);
				
				if(tieptucGame==0)
				printf(" Game Over ");
				break;	
				}
			default: printf("No Number \n");
			}
			counter=0; // khoi tao lai bo dem.
			
		}		
	return 0;
	}
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?