双重循环基本结构
for(i=0;i<n;i++){
cout<<"这里是第一部分外层循环"<<endl;
for(j=0;j<n;j++){
cout<<"这里是内层循环"<<endl;
}
cout<<"这里是第二部分外层循环"<<endl;
}
变式1
for(i=1;i<=n;i++){
cout<<"这里是第一部分外层循环"<<endl;
for(j=i;j<=n;j++){
cout<<"内层循环从i开始"<<endl;
}
cout<<"这里是第二部分外层循环"<<endl;
}
变式2
for(i=1;i<=n;i++){
cout<<"这里是第一部分外层循环"<<endl;
for(j=1;j<=i;j++){
cout<<"内层循环到i停止"<<endl;
}
cout<<"这里是第二部分外层循环"<<endl;
}
变式3
for(i=1;i<=n;i++){
cout<<"这里是第一部分外层循环"<<endl;
for(j=1;j<=n-i;j++){
cout<<"内层循环次数与i互补"<<endl;
}
cout<<"这里是第二部分外层循环"<<endl;
}
例题
输出钟表
#include<bits/stdc++.h>
using namespace std;
int main()
{
for(int i=1;i<=24;i++)
{
for(int j=0;j<60;j++)
{
for(int k=0;k<60;k++)
{
cout<<i<<"时"<<j<<"分"<<k<<"秒"<<endl;
}
}
}
return 0;
}
输出星花直角三角形
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
for(int j=0;j<=i;j++)
cout<<"*";
cout<<endl;
}
return 0;
}
输出矩形
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,d;
char c;
cin>>a>>b>>c>>d;
// 判断输出的矩形是空心还是实心
// 输出实心矩形
if(d==1){
// 控制行数
for(int i=1;i<=a;i++){
// 控制列数
for(int j=1;j<=b;j++){
cout<<c;
}
// 输出一行后换行
cout<<endl;
}
}
else{
// 行数
for(int i=1;i<=a;i++){
// 控制列数
for(int j=1;j<=b;j++)
// 注意到“空心”的本质是第一行、第一列、最后一行、最后一列输出字符
// 其他位置输出空格
{
if (i==1 || j==1 || i==a || j==b)
cout<<c;
else
cout<<" ";
}
// 输出一行后换行
cout<<endl;
}
}
return 0;
}
九九乘法表
#include<bits/stdc++.h>
using namespace std;
int main(){
for(int i=1;i<=9;i++)
{
for(int j=1;j<=i;j++)
{
cout<<i<<"*"<<j<<"="<<setw(2)<<i*j<<" ";
}
cout<<endl;
}
return 0;
}