国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

電子工程網(wǎng)

標(biāo)題: 嵌入式C語(yǔ)言常用18種算法范例 [打印本頁(yè)]

作者: missARM    時(shí)間: 2016-3-29 11:13
標(biāo)題: 嵌入式C語(yǔ)言常用18種算法范例
第一種:冒泡排序法

/*
將uchar niu[8]={1,28,8,4,100,79,89,11};  AD
    采用冒泡法進(jìn)行排序;(兩個(gè)for循環(huán)嵌套);
****************************************************
編程思路:用最后一個(gè)數(shù)與前一個(gè)數(shù)比較,若比前一個(gè)數(shù)小
則交換位置,然后再與前一個(gè)數(shù)比較,若比前一個(gè)數(shù)小再交換
位置,知道比前一個(gè)數(shù)大或者已經(jīng)在最前面!如此循環(huán)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++)           //設(shè)置循環(huán)次數(shù)為8
        {
                for(k=7;k>j;k--)                //從最后一個(gè)數(shù)開(kāi)始與前一個(gè)數(shù)比較                               
                {
                        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]);          //輸出排好的數(shù)列
        }
        printf("\n");

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


作者: missARM    時(shí)間: 2016-3-29 11:39
第二種:冒泡法排序2函數(shù)調(diào)用-地址傳遞

/*
將uchar niu[8]={1,28,8,4,100,79,89,11};
該算法用途:AD采樣時(shí)采樣20次,選一個(gè)中間值作為最終采樣的值,可以采取該算法。
    采用冒泡法進(jìn)行排序;(兩個(gè)for循環(huán)嵌套);
****************************************************
編程思路:用最后一個(gè)數(shù)與前一個(gè)數(shù)比較,若比前一個(gè)數(shù)小
則交換位置,然后再與前一個(gè)數(shù)比較,若比前一個(gè)數(shù)小再交換
位置,知道比前一個(gè)數(shù)大或者已經(jīng)在最前面!如此循環(huán)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++)           //設(shè)置循環(huán)次數(shù)為8
        {
                for(k=7;k>j;k--)                //從最后一個(gè)數(shù)開(kāi)始與前一個(gè)數(shù)比較                               
                {
                        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]);          //輸出排好的數(shù)列
    }
            printf("\n");

}
作者: missARM    時(shí)間: 2016-3-29 11:39
更多技術(shù)交流歡迎咨詢高老師:3322386182
作者: missARM    時(shí)間: 2016-4-2 17:32
第三種:
/*  檢測(cè)字符串是否是回文:
    abcba. 如果是返回1.如果不是:0
***************************************************************************
編程思路:用輸入的字符串中的第一個(gè)字符與最后一個(gè)字符比較,若不相同則跳出比較
當(dāng)比較的次數(shù)與輸入的字符個(gè)數(shù)的一半相等時(shí) 則認(rèn)為是回文!
*/

#include

#define uchar unsigned char

uchar hw[20];

void main()
{
        uchar i,j;

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

        for(j=0;j         {
                if(hw[j]!=hw[i-j-1]) //比較相對(duì)應(yīng)的字符 若不相等 就跳出循環(huán)
                                         //并記錄相同的個(gè)數(shù)為j
                {
                        break;
                }
        }

        if(j==i/2)               //比較輸入個(gè)數(shù)與匹配次數(shù)從而判斷是否為回文
    {
                printf("您輸入的字符串是回文\n");
        }
        else
        {
                printf("您輸入的字符串不是回文\n");
        }
}
想學(xué)習(xí)技術(shù)參加培訓(xùn)(包括模電/數(shù)電,單片機(jī),PCBlayout,F(xiàn)PGA,嵌入式ARM,STM32,linux,android等技術(shù)培訓(xùn)課程,有初級(jí),中級(jí),高級(jí)課程)可以聯(lián)系高老師Q:3322386182
更多學(xué)習(xí)視頻等你免費(fèi)學(xué)習(xí),歡迎免費(fèi)注冊(cè)信盈達(dá)網(wǎng)校http://www.edu118.cn/
作者: missARM    時(shí)間: 2016-4-2 17:35
第四種:添加并排序
/*
有一個(gè)已經(jīng)排好序的數(shù)組。現(xiàn)輸入一個(gè)數(shù),要求按原來(lái)的規(guī)律將它插入數(shù)組中。
************************************************************************
編程思路:將輸入值從左到右開(kāi)始于數(shù)組比較,若小于或等于此數(shù)組元素,
  則把輸入值存到B數(shù)組的相應(yīng)位置,再把A數(shù)組后面的元素傳遞到B數(shù)組相應(yīng)的位置,
  若輸入值大于它則把A數(shù)組元素傳遞到B數(shù)組元素
  相應(yīng)位置,
*/

#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("請(qǐng)輸入一個(gè)數(shù)字!回車結(jié)束!\n");
        scanf("%d",&m);                           //輸入值存m
        for(j=0;j<9;j++)                          //從數(shù)組左側(cè)開(kāi)始判斷
        {
                if(m<=a[j])                                  //若輸入值小于或等于此處數(shù)組元素 則把m賦值到b數(shù)組相應(yīng)的位置 再跳出循環(huán)
                {       
                        b[j]=m;
                        break;
                }
                else                                 //若輸入值大于此處的數(shù)組元素 則把a(bǔ)數(shù)組中的元素傳遞到b的相對(duì)位置
                        b[j]=a[j];
                        i=i+1;                                                         //設(shè)置標(biāo)志位
        }
        if(i==9)                                 //若輸入值小于數(shù)組最大值 則把m賦值到第10個(gè)元素
                b=m;
        else
        {
                for(k=0;k<(9-j);k++)                                //數(shù)組元素從a傳遞到b數(shù)組
                {
                        b[j+k+1]=a[j+k];
                }
        }
        for(k=0;k<10;k++)                       //輸出數(shù)組b
                printf("%d\t",b[k]);
}
想學(xué)習(xí)技術(shù)參加培訓(xùn)(包括模電/數(shù)電,單片機(jī),PCBlayout,F(xiàn)PGA,嵌入式ARM,STM32,linux,android等技術(shù)培訓(xùn)課程,有初級(jí),中級(jí),高級(jí)課程)可以聯(lián)系高老師Q3322386182更多學(xué)習(xí)視頻等你免費(fèi)學(xué)習(xí),歡迎免費(fèi)注冊(cè)信盈達(dá)網(wǎng)校http://www.edu118.cn/




歡迎光臨 電子工程網(wǎng) (http://www.4huy16.com/) Powered by Discuz! X3.4