入门基础(五)

日期:04-03  点击:68  属于:入门课程

【知识点】:

         1.循环知识综合应用;
         2.循环嵌套(多重循环);

           3.程序的调试;
           4.冒泡排序;
           5.多关键字排序;

第一小节   循环与循环嵌套

在上图中,分针的转动就是一种循环,每小时分针转60次。每分钟走一格就是循环节了;
如果在加上时针的走动,就出现了两个循环了,分针的循环和时针的循环;
即分针走60格,时针走一格;这样,就好像是分针的活动镶嵌在时针里面,

如果用程序体现的话:
#include<bits/stdc++.h>
using namespace std;
int fenzhen,shizhen; 
int main()
{
   for (int shizhen=1;shizhen<=60;shizhen++)
   {
           for (int fenzhen=1;fenzhen<=60;fenzhen++ )
   }
return 0;
}
例如我们再画一格蜂窝的时候:


我们可以做如下的设计;
该蜂窝可以看做是6个6边型围在一起;所以可们可以循环6次画出6个6边型;而每个6边型也可以用一个for循环画出;
这样就形成了一个循环嵌套的结构;



第二小节 冒泡排序和多关键字排序
一、冒泡排序;
     假设在一个池塘里,有许多的不同重量的泡泡;这样,我们很容易就明白,重量轻的泡泡会不断的往上浮,重量重的泡泡会不断的往下沉。
如果我们把一组数看作是泡泡的话,如下图:
      

最终的目的是让这些“泡泡”重大到小排好;
冒泡排序:每次都跟相邻的数进行比较,如果当前的a[i]比a[i+1]小就把他们的数据进行交换;直到整个数组都是从大到小排好为止。(从小到大的排法也是如此,只不过是把a[i]<a[i+1]修改成a[i]>a[i+1]);
问题思考:一个有n个数的数组,要排好的话,要多少趟?
第一轮我们得到:


第二轮我们得到:

   第三轮我们得到:    

第4轮我们的到

本应该还有一轮的,但我们直到,在最后一轮,第1个数已经是最大的了;
例题选讲:

【分析】:在这个题目里面有n个学生,每个学生都有三数量分别是art的成绩和bin成绩;还有一个是两个的总分;所以我们设置了3个数组;分别是art[i]、bin[i]和sum[i];
 因为他们的成绩要按照总分从高到低排列,所以我们要对这n个学生的成绩进行排队,如果总分相同的,就以art的成绩高为准
解题参考: