[ C\C++ ] Cấu trúc lặp


Cấu trúc lặp trong C\C++

Dang1: for
for (biểu thức1; biểu thức 2; biểu thức 3)
{
Câu lệnh;
}
Trong đó:
  Biểu thức 1: khởi tạo giá trị ban đầu
  Biểu thức 2: điều kiện lặp
  Biểu thức 3: thay đổi giá trị

Dạng 2: while
  while (biểu thức điều kiện){
Câu lệnh;
}

  Trong khi (biểu thức điều kiện) còn đúng câu lệnh còn thực hiện

Dạng 3: do\while
do{
Câu lệnh;
  } while(biểu thức điều kiên);

   Tương tự như while chỉ khác câu lệnh thực hiện trước điều kiện kiểm tra sau => câu lệnh sẽ được thực hiện ít nhất 1 lần.

Một số Ví dụ

Ví dụ1. In ra màn hình tất cả số nguyên có 3 chữ số sao cho tổng các chữ số bằng 10.

// In ra man hinh tat ca cac so gom 3 chu so, sao cho tong cua cac chu so bang 10

// Cách1: dùng for ------------------------------------------------------------------

#include<iostream.h>
#include<conio.h>

void main(){
 cout<<"\n In day so can tim: ";
 for(int a=100;a<=999;a++)
{
if(a%10+(a/10)%10+(a/100)%10==10)
 cout<<a<<" ; ";
}
 getch();

}

// Cách2: dùng while ---------------------------------------------------------------

#include<iostream.h>
#include<conio.h>

void main(){
 cout<<"\n In day so can tim: ";
int a=100;
 while(a<=999){
     if(a%10+(a/10)%10+(a/100)%10==10)
 cout<<a<<" ; ";
     a++;
  }
 getch();
}

// Cách3: dùng do\while -----------------------------------------------------------

#include<iostream.h>
#include<conio.h>

void main(){
 cout<<"\n In day so can tim: ";
int a=100;
do{
if(a%10+(a/10)%10+(a/100)%10==10)
 cout<<a<<" ; ";
a++;
  } while(a<=999);
 getch();
}
//-----------------------------------------------------------------------------------------------

Ví dụ2. Tính s=1+3+5+..+n (n nhập từ bàn phím thỏa mãn 2<=n<=23).

// Tinh tong s=1+3+5+7+...+n (voi n nhap tu ban phim thoa man 2<=n<=23)
#include<iostream.h>
#include<conio.h>

void main(){
 int n;
 // nhap n
 do{
cout<<"\n n=";
cin>>n;
if(2>n||23<n)
cout<<"\n Nhap lai n!";
 }while(2>n||23<n);
 // tinh tong
 int s=0;
 int i=1;
 while(i<=n){
if (i%2!=0)
s=s+i;
i++;
  }
 cout<<"\n Ket qua: "<<s;
 getch();
}

// Các bạn có thể đổi while => for; do\while => for ???
//-------------------------------------------------------------------------------------------------

Ví dụ3. Giải bài toán Gà-Chó

// Giai bai toan Ga-Cho

//Cách 1: dùn for lồng nhau -------------------------------------------------------------

#include<iostream.h>
#include<conio.h>

void main(){
 int g,c;
 for(g=0;g<=36;g++)
  for(c=0;c<=36;c++)
if(g+c==36&&g*2+c*4==100)
cout<<"\n Ket qua: Ga = "<<g<<"; Cho= "<<c ;
 getch();

}

//Cách 2: dùng while (tối ưu hơn) ------------------------------------------------------

#include<iostream.h>
#include<conio.h>

void main(){
 int g=0;
while(g<=36){
if(g*2+(36-c)*4==100)
cout<<"\n Ket qua: Ga = "<<g<<"; Cho= "<<36-g ;
g++;
 getch();
}