Day4

EI
EI
2021-03-14 / 0 评论 / 41 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年03月15日,已超过518天没有更新,若内容或图片失效,请留言反馈。

【1】循环结构语句
1.for

 基本结构:
 for(表达式1;表达式2;表达式3)
 {
     语句块;
 }
 表达式1:赋初值
 表达式2:判断条件
 表达式3:自增或自减
 
 执行顺序:
    先执行表达式1,然后判断表达式2是否成立,成立则执行语句块,
    执行表达式3,再次判断表达式2,成立则执行语句块,依次循环。
    直到表达式2不成立,则跳出循环。
     
 嵌套结构:
 for(表达式1;表达式2;表达式3)
 {
    for(表达式4;表达式5;表达式6)
    {
        语句块;  
    }
 }
 
 终端输入行数,打印图案:
 例如:输入6
 
 *
 **
 ***
 ****
 *****
 ******
 
 char ch = ‘*’
 printf(“%c”,ch)
 
 printf(“*”);
 
 scanf("%d",&n);
 for(i=0;i<n;i++)
 printf("*");
 
 外层循环控制行数,内层循环控制每行打印的个数。
 
 终端输入行数,打印如下图案:
 5
          空格   星
 *****     0     5
  ****     1     4
   ***     2     3
    **     3     2
     *     4     1
 

2.while

 基本结构:
 while(表达式)
 {
    语句块;
 }

 表达式:判断条件
 
 for(表达式1;表达式2;表达式3)
 {
     语句块;
 }
 改写while循环:
 表达式1;
 while(表达式2)
 {
     语句块;
     表达式3;     
 }
 
 死循环:while(1)永真循环
         for(;;)

         
练习:已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。         
         

3.do...while

【2】数组

概念:一组具有顺序关系且类型相同的数据集合
特点:地址连续
定义格式:
    存储类型   数据类型  数组名[元素个数]
    (auto)     int      a[10];
    数组名:满足标识符的命名规则
            1.以数字、字母、下划线组成
            2.首个字符必须是字母或下划线
            3.不能与关键字重名   
数组大小:
     占字节数: 数据类型 * 元素个数 
     int  a[10];   size = 40      
     char a[5];    size = 5
     double a[8];  size = 64
     sizeof(数据类型或变量名) = 所占字节数。 
            
数组元素: 
      int a[10]  : a[0] - a[9] 十个元素 
      
数组初始化:
      全部初始化:
       定义数组的同时进行赋值 
       int a[5] = {1,2,3,4,5};         
      部分初始化:
       int a[5] = {1,2};
       部分初始化时,未被初始化的元素默认为0.
      未初始化:
       int a[5];
       未初始化,数组元素为随机值。  
   
    数组清零:
       int a[5] = {0,0,0,0,0};        
       int a[5] = {0};
       int a[5] = {}; 
    
数组的输入输出:
     int a[5],i;
     for(i=0;i<5;i++)
     {
        scanf("%d",&a[i]);
     }    
    
     for(i=0;i<5;i++)
     {
        printf("%d",a[i]);
     }    
    
 青年歌手大赛10个评委对选手进行打分,求选手得分。
 评分规则为去掉一个最高分,去掉一个最低分,其余求平均值。
 评委分数从终端输入,输出选手成绩即可。
    
    整数相除,向下取整。
    
    5 / 2 = 2
    
    float a = 5/2;
    a  = 2.000000

【3】冒泡排序

5个数
5 4 3 2 1 从小到大

第一趟:

4 5 3 2 1
4 3 5 2 1
4 3 2 5 1 
4 3 2 1 5    

第二趟:

3 4 2 1 5
3 2 4 1 5
3 2 1 4 5

第三趟:

2 3 1 4 5
2 1 3 4 5 

第四趟:

1 2 3 4 5

5个数
 
 4趟  每趟比较次数依次递减
 
4行 每行星数依次递减

****
***
**
*    

【4】二维数组

概念:有行有列的数组
定义格式: 
    存储类型   数据类型  数组名[行数][列数]
    (auto)     int      a[2][3];

数组初始化:
      全部初始化:
       定义数组的同时进行赋值 
       int a[2][3] = {1,2,3,4,5,6};         
       int a[2][3] = {{1,2,3},{4,5,6}};
       a[0][0] = 1;
       a[0][1] = 2;
       a[0][2] = 3;
       a[1][0] = 4;
       a[1][1] = 5;
       a[1][2] = 6;        
      部分初始化:
       int a[2][3] = {1,2};
       部分初始化时,未被初始化的元素默认为0.
      未初始化:
       int a[2][3];
       未初始化,数组元素为随机值。
       
二维数组的输入输出:
    int a[2][3],i,j;
    for(i=0;i<2;i++)
    {
        for(j=0;j<3;j++)
        {
            scanf("%d",&a[i][j]);
        }                                                        
    }    
    for(i=0;i<2;i++)
    {
        for(j=0;j<3;j++)
        {
            printf("a[%d][%d] = %d\n",i,j,a[i][j]);
        }                                                        
    }
     
    有个三行四列的二维数组,要求从终端进行输入,找到其最大最小值进行输出,
    输出时打印其行号和列号。
    
        
2

评论 (0)

取消