国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 3486|回復: 4
打印 上一主題 下一主題

嵌入式C語言常用18種算法范例

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2016-3-29 11:13:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
第一種:冒泡排序法

/*
將uchar niu[8]={1,28,8,4,100,79,89,11};  AD
    采用冒泡法進行排序;(兩個for循環嵌套);
****************************************************
編程思路:用最后一個數與前一個數比較,若比前一個數小
則交換位置,然后再與前一個數比較,若比前一個數小再交換
位置,知道比前一個數大或者已經在最前面!如此循環8次就可以排好循序!
*/
#include

#define uchar unsigned char

uchar niu[8]={8,28,6,4,100,79,102,11};

main()
{
        uchar a,b,c,j,k;

        for(j=0;j<8;j++)           //設置循環次數為8
        {
                for(k=7;k>j;k--)                //從最后一個數開始與前一個數比較                               
                {
                        if(niu[k]                         {       
                                c=niu[k-1];
                                niu[k-1]=niu[k];
                                niu[k]=c;
                        }       
                }
        }
        for(j=0;j<8;j++)
        {
            printf("%d\t",niu[j]);          //輸出排好的數列
        }
        printf("\n");

}
更多技術交流歡迎咨詢高老師:3322386182

沙發
 樓主| 發表于 2016-3-29 11:39:04 | 只看該作者
第二種:冒泡法排序2函數調用-地址傳遞

/*
將uchar niu[8]={1,28,8,4,100,79,89,11};
該算法用途:AD采樣時采樣20次,選一個中間值作為最終采樣的值,可以采取該算法。
    采用冒泡法進行排序;(兩個for循環嵌套);
****************************************************
編程思路:用最后一個數與前一個數比較,若比前一個數小
則交換位置,然后再與前一個數比較,若比前一個數小再交換
位置,知道比前一個數大或者已經在最前面!如此循環8次就可以排好循序!
*/
#include

#define uchar unsigned char

uchar a,b,c,j,k;
uchar nsd[8]={8,28,6,4,100,79,102,11};

uchar maopao(uchar niu[8]);

uchar maopao(uchar niu[8])
{
        for(j=0;j<8;j++)           //設置循環次數為8
        {
                for(k=7;k>j;k--)                //從最后一個數開始與前一個數比較                               
                {
                        if(niu[k]                         {       
                                c=niu[k-1];
                                niu[k-1]=niu[k];
                                niu[k]=c;
                        }       
                }
        }
        return  0;//這條可以不要,空的
}

void main()
{
    maopao(nsd);
        for(j=0;j<8;j++)
    {
            printf("%d\t",nsd[j]);          //輸出排好的數列
    }
            printf("\n");

}
板凳
 樓主| 發表于 2016-3-29 11:39:19 | 只看該作者
更多技術交流歡迎咨詢高老師:3322386182
地板
 樓主| 發表于 2016-4-2 17:35:09 | 只看該作者
第四種:添加并排序
/*
有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中。
************************************************************************
編程思路:將輸入值從左到右開始于數組比較,若小于或等于此數組元素,
  則把輸入值存到B數組的相應位置,再把A數組后面的元素傳遞到B數組相應的位置,
  若輸入值大于它則把A數組元素傳遞到B數組元素
  相應位置,
*/

#include

#define uchar unsigned char
#define uint unsigned int

uchar a[10]={4,6,8,11,28,66,79,100,102},b[10];

main()
{       
        uint m;
        uchar i=0,j,k;

        printf("請輸入一個數字!回車結束!\n");
        scanf("%d",&m);                           //輸入值存m
        for(j=0;j<9;j++)                          //從數組左側開始判斷
        {
                if(m<=a[j])                                  //若輸入值小于或等于此處數組元素 則把m賦值到b數組相應的位置 再跳出循環
                {       
                        b[j]=m;
                        break;
                }
                else                                 //若輸入值大于此處的數組元素 則把a數組中的元素傳遞到b的相對位置
                        b[j]=a[j];
                        i=i+1;                                                         //設置標志位
        }
        if(i==9)                                 //若輸入值小于數組最大值 則把m賦值到第10個元素
                b=m;
        else
        {
                for(k=0;k<(9-j);k++)                                //數組元素從a傳遞到b數組
                {
                        b[j+k+1]=a[j+k];
                }
        }
        for(k=0;k<10;k++)                       //輸出數組b
                printf("%d\t",b[k]);
}
想學習技術參加培訓(包括模電/數電,單片機,PCBlayout,FPGA,嵌入式ARM,STM32,linux,android等技術培訓課程,有初級,中級,高級課程)可以聯系高老師Q3322386182更多學習視頻等你免費學習,歡迎免費注冊信盈達網校http://www.edu118.cn/
地下室
 樓主| 發表于 2016-4-2 17:32:13 | 只看該作者
第三種:
/*  檢測字符串是否是回文:
    abcba. 如果是返回1.如果不是:0
***************************************************************************
編程思路:用輸入的字符串中的第一個字符與最后一個字符比較,若不相同則跳出比較
當比較的次數與輸入的字符個數的一半相等時 則認為是回文!
*/

#include

#define uchar unsigned char

uchar hw[20];

void main()
{
        uchar i,j;

        printf("請連續輸入字符串,按回車結束輸入!\n");
        for(i=0;i<20;i++)                                    //設置輸入 并記錄輸入個數為i
        {
                scanf("%c",&hw[i]);   
                if(hw[i]=='\n')                                  //輸入回車時  結束輸入   
                {
                        break;
                }   
        }

        for(j=0;j         {
                if(hw[j]!=hw[i-j-1]) //比較相對應的字符 若不相等 就跳出循環
                                         //并記錄相同的個數為j
                {
                        break;
                }
        }

        if(j==i/2)               //比較輸入個數與匹配次數從而判斷是否為回文
    {
                printf("您輸入的字符串是回文\n");
        }
        else
        {
                printf("您輸入的字符串不是回文\n");
        }
}
想學習技術參加培訓(包括模電/數電,單片機,PCBlayout,FPGA,嵌入式ARM,STM32,linux,android等技術培訓課程,有初級,中級,高級課程)可以聯系高老師Q:3322386182
更多學習視頻等你免費學習,歡迎免費注冊信盈達網校http://www.edu118.cn/
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 女人18毛片特级一级免费视频 | 欧美另类视频一区二区三区 | 亚洲 中文 欧美 日韩 在线人 | 久久久免费视频观看 | 久草热视频| va在线观看| 欧美成人三级网站在线观看 | 国产精品久久久久久永久牛牛 | 国产精品久久久久久一级毛片 | 国产区1| 亚洲最大情网站在线观看 | 免费精品一区二区三区在线观看 | 在线观看国产欧美 | 曰本毛片 | 四虎精品视频在线永久免费观看 | 韩国精品福利一区二区 | 天天操天天摸天天舔 | 欧美线在线精品观看视频 | 美女无遮挡拍拍拍免费视频 | 一区二区三区在线免费观看视频 | 男人的午夜天堂 | 亚洲欧美日本韩国 | 一区二区播放 | 国产日韩欧美一区二区三区视频 | 精品国内自产拍在线视频 | 亚洲人av高清无码 | 91在线免费视频观看 | 免费成人高清视频 | 香蕉久热| 欧美日韩国产在线人成app | 国产精品18久久久久久小说 | 成人在线播放网站 | 国产精品va免费视频 | 亚洲一区二区三区高清 不卡 | 国产高清在线免费观看 | 久草视频网 | 日本私人网站在线观看 | 久久久久国产一级毛片高清板 | 亚州视频一区 | 亚洲人视频在线 | 国产精品亚洲综合天堂夜夜 |