X , In ra kiểu số nguyín viết dưới dạng sổ hexa (cơ số 16)
2.3.4.1. Cẩu trúc while
Đđy lă cấu trúc lặp trong đó một khối lệnh sẽ được thực hiện đi thực
hiện lại khi điều kiện lặp vẫn cịn thỏa mên.
Cú phâp
while(dieu_kien)
// khối lệnh
Trong đó:
- dieu_kien lă một biểu thức nhận giâ trị nguyín hoặc thực - while lă từ khóa
Sự hoạt động
Bước 1: Tính giâ trị của biểu thức điều kiện
Bước 2: Nếu biểu thức điều kiện có giâ trị sai (bằng 0) thì trình biín
dịch sẽ thôt khỏi cấu frúc while. Nếu biểu thức điều kiện có giâ trị đúng (khâc 0) thì khối lệnh sẽ được thực hiện vă quay trở lại bước 1. Như vậy
có thể khối lệnh sẽ không được thực hiện lần năo nếu ờ trong lần đầu tiín
biểu thức đê nhận giâ trị lă sai.
Ví dụ 2.3.10: Sử dụng thuật tôn ơclid để tìm ước số chung lớn nhất
của hai số nguyín a vă b nhập văo từ băn phím.
Thuật tôn ơclid tìm USCLN của hai số a,b như sau:
Chừng năo mă a>b (Giả sử a >b):
a=b;
b=a-b;
Thuật toân dừng khi a=b, hoặc a*b-0
Căi đặt thuật tôn:
^include <stdio.h> ^include <conio.h>
int main()
{
unsigned n,m,a,b;
printf("\nNhap vao hai so ngun duong: ");
scanf("%u%u", &a, &b); n = a;
m - b;
{
if (n>m) n -= m; else
m -- n;
}
printf("\nUSCLN cua %u va %u = %u", a, b,n);
getcheO; return 1; }
Ví dụ 23.11: Nhập từ băn phím số ngun n. Sau đó in ra kết quả n !
//include <stdio.h> //include <conio.h> void main() { intn; int i =1;
int result =1; // bien luu ket qua n! printf("\n Nhap so nguyín n:"); scanf("%d",&n);
printf("\n");
// i tang tu 1 den n, result = l*2*..*n while(i<=n) { result *= i; i++; } printf(" %d!=%d",n,result); getch(); }
Vòng lặp while sẽ chạy không kết thúc nếu biểu thức điều kiện mang giâ trị 1 mêi. Để frânh vòng lặp khơng kết thúc thì trong thđn của while
phải có một phĩp tơn lăm thay đổi giâ trị của biểu thức điều kiện hoặc lă phải có lệnh break; để nhảy ra khỏi vòng lặp.