嵌入式培训学习历程第八天

     一天一章啊。。晕。。开始

  1.菱形的一种特别打印方式。:

 1 #include <stdio.h>
  2 #include <stdlib.h>
  3 
  4 #define IABS(a) ((a) > 0 ? (a) : -(a))
  5 
  6 void Print(char , int);
  7 
  8 int main(int argc, char *argv[])
  9 {
 10     char str;
 11     int num;
 12     printf("Input character : ");
 13     scanf("%c", &str);
 14     printf("Input number : ");
 15     scanf("%d", &num);
 16     Print(str,num);
 17 
 18     return 0;
 19 }
 20 
 21 void Print(char str, int num)
 22 {
 23     int i,j;
 24     for(i = -num; i <= num; i ++) {
 25         for(j = -num; j <= num; j ++) {
 26             if(IABS(i) + IABS(j) <= num) {
 27                 putchar(str + (num - IABS(i) - IABS(j))); //使用putchar 控制打印的字符。
 28             }
 29             else {
 30                 printf(" ");
 31             }
 32         }
 33         printf("\n");
 34     }
 35 
 36     return ;
 37 }

  运行结果 :

 1 akaedu@cxw:~/CXW/New/7_26_ShuZu$ ./a.out 
 2 Input character : A
 3 Input number : 8
 4         A        
 5        ABA       
 6       ABCBA      
 7      ABCDCBA     
 8     ABCDEDCBA    
 9    ABCDEFEDCBA   
10   ABCDEFGFEDCBA  
11  ABCDEFGHGFEDCBA 
12 ABCDEFGHIHGFEDCBA
13  ABCDEFGHGFEDCBA 
14   ABCDEFGFEDCBA  
15    ABCDEFEDCBA   
16     ABCDEDCBA    
17      ABCDCBA     
18       ABCBA      
19        ABA       
20         A        
21 akaedu@cxw:~/CXW/New/7_26_ShuZu$ 

 

  2.数组

      (1).数组的定义        

            类型名 数组名[数组长度]

            数组元素是连续存放的

      (2).定义和声明的区别  

          不允许多定义和重复定义

          全局变量,不初始化的情况下输出,变量默认为0

          注意: 声明不会确定存储空间

      (3). 除了数组定义,其他情况下都是对数组元素的引用

          数组名称不能赋值符的左侧,数组不可以整体赋值

      (4). 生成随机数

          srand(time(NULL));

          rand() % 60    60内的随机数

      (5).函数名称是数组的首地址并且是地址常量,不可改变。

      (6). 对于字符数组也不可整体访问  

          例 :  char str[10];

              str[] = "Hello" 或 str[10] = "Hello"  都不正确

      (7). printf 输出数据时,碰到'\0'会结束输出。

      (8). 使用sizeof计算数组大小

          例 :   int a[10];

               sizeof(a) / sizeof(int )     为数组大小。。

  3.排序方法

    (1). 冒泡排序

 36     for(i = 0;i != n - 1; i ++)
 37     {
 38         for(j = 0; j != n - 1 - i; j ++)
 39         {
 40             if(a[j] < a[j + 1])
 41             {
 42                 itemp = a[j];
 43                 a[j] = a[j + 1];
 44                 a[j + 1] = itemp;
 45             }
 46         }
 47     }

 

    (2). 选择排序 

     for(i = 0; i != n - 1; i ++)
 51     {
 52         for(j = i + 1; j != n; j ++)
 53         {
 54             if(a[i] < a[j])
 55             {
 56                 itemp = a[i];
 57                 a[i] = a[j];
 58                 a[j] = itemp;
 59             }
 60         }
 61     }

 

    (3).更高效的选择排序

 63     int k;
 64     for(i = 0; i != n -1; i ++) {
 65         k = i;
 66         for(j = i + 1; j != n; j ++) {
 67             if(a[k] < a[j]) {
 68                 k = j;
 69             }
 70         }
 71         if(i != k) {
 72             itemp = a[i];
 73             a[i] = a[k];
 74             a[k] = itemp;
 75         }
 76     }

 

   今天的英语 : implicit(隐式的)  function(函数)  declaration(声明)  incompatible(冲突的)

 

转载于:https://www.cnblogs.com/cxw825873709/p/3218754.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值