循环练习题

针对循环结构,选择典型练习题讲解。

  1. 奥运奖牌 (T1064)
  2. 重要的话说 n 遍(P3933)
  3. 奇数求和(P3935)
  4. 26个兄弟姐妹1(P3934)
  5. 老狼老狼(P2936)
  6. 打老虎(P3942)
  7. 26个兄弟姐妹2(P3940)

1. 奥运奖牌 (T1064)

//解法一:普通变量+循环
#include<iostream>
using namespace std;
int main() {
     int n;
     cin>>n;
     int sa=0,sb=0,sc=0;
     for (int i=1;i<=n;i++)
     {
         int a,b,c;
         cin>>a>>b>>c;
         sa+=a;
         sb+=b;
         sc+=c;
     }
    cout<<sa<<" "<<sb<<" "<<sc<<" "<<(sa+sb+sc);
     return 0;
}

//解法2:数组+循环
#include<iostream>   //用数组 
using namespace std;
int main() {
     int n;
     cin>>n;
     int s[3]={0,0,0};     //记录统计数,或者全局变量
     for (int i=1;i<=n;i++)
     {
         int a,b,c;
         cin>>a>>b>>c;
         s[0]+=a;    //记录金牌 
         s[1]+=b;    //统计银牌 
         s[2]+=c;    //统计铜牌 
     }
    cout<<s[0]<<" "<<s[1]<<" "<<s[2]<<" "<<(s[0]+s[1]+s[2]);
    return 0;
}

2. 重要的话说 n 遍(P3933)

#include<iostream>
using namespace std;
int main() {
     int n;
     cin>>n;
     for (int i=1;i<=n;i++)
     {
         cout<<"I'm gonna WIN!"<<endl;
 
     }
     return 0;
}

3. 奇数求和(P3935)

#include <iostream>
using namespace std;
int main()
{
    int m,n;
    cin>>m>>n;
    if (m%2==0) m++; //奇数
    if (n%2==0) n--; //jishu
    int sum=0;
    for (int i=m;i<=n;i+=2)
    {
        sum+=i;
    }
    cout<<sum;
    return 0;
}

4. 26个兄弟姐妹1(P3934)

//char也可+ - * /
#include<iostream>
using namespace std;
int main() {
     for (char x='a';x<='z';x++)
     {
         cout<<x<<" ";
     }
     return 0;
}

5. 老狼老狼(P2936)

#include<iostream>
using namespace std;
int main() {
     int i;
    for (int i=1;i<=12;i++)
    {
        cout<<"老狼老狼几点钟?"<<i<<"点钟。"<<endl;
    }
    cout<<"狼来了,快跑!";
     return 0;
}

6. 打老虎(P3942)

/*
打老虎 while
*/
#include<iostream>
using namespace std;
int main() {
     int i=1;
     while (i<=5)
     {
         cout<<i;
         cout<<"\n";
         i++;
     }
     return 0;
}

7. 26个兄弟姐妹2(P3940)

#include<iostream>
using namespace std;
int main() {
for (char i='a';i<='z';i++) {
    cout<<i<<' ';
}
    cout<<endl;
    
    for (char i='Z';i>='A';i--) {
    cout<<i<<' ';
}
     return 0;
}