数组的最长平台c语言,2010台湾省C语言版高级
1、我們用l代表最長(zhǎng)平臺(tái)的長(zhǎng)度,用k指示最長(zhǎng)平臺(tái)在數(shù)組b中的起始位置(下標(biāo))。用j記住局部平臺(tái)的起始位置,用i指示掃描b數(shù)組的下標(biāo),i從0開(kāi)始,依次和后續(xù)元素比較,若局部平臺(tái)長(zhǎng)度(i-j)大于l時(shí),則修改最長(zhǎng)平臺(tái)的長(zhǎng)度k(l=i-j)和其在b中的起始位置(k=j),直到b數(shù)組結(jié)束,l即為所求。
void Platform (int b[ ], int N)
//求具有N個(gè)元素的整型數(shù)組b中最長(zhǎng)平臺(tái)的長(zhǎng)度。
{l=1;k=0;j=0;i=0;
while(i
{while(i
if(i-j+1>l) {l=i-j+1;k=j;} //局部最長(zhǎng)平臺(tái)
i++; j=i; } //新平臺(tái)起點(diǎn)
printf(“最長(zhǎng)平臺(tái)長(zhǎng)度%d,在b數(shù)組中起始下標(biāo)為%d”,l,k);
}// Platform
2、約瑟夫環(huán)問(wèn)題(Josephus問(wèn)題)是指編號(hào)為1、2、 ,n的n(n>0)個(gè)人按順時(shí)針?lè)较驀梢蝗?#xff0c;現(xiàn)從第s個(gè)人開(kāi)始按順時(shí)針?lè)较驁?bào)數(shù),數(shù)到第m個(gè)人出列,然后從出列的下一個(gè)人重新開(kāi)始報(bào)數(shù),數(shù)到第m的人又出列, ,如此重復(fù)直到所有的人全部出列為止?,F(xiàn)要求采用循環(huán)鏈表結(jié)構(gòu)設(shè)計(jì)一個(gè)算法,模擬此過(guò)程。
#include
typedef int datatype;
typedef struct node
{datatype data;
struct node *next;
}listnode;
typedef listnode *linklist;
void jose(linklist head,int s,int m)
{linklist k1,pre,p;
int count=1;
pre=NULL;
k1=head; /*k1為報(bào)數(shù)的起點(diǎn)*/
while (count!=s) /*找初始報(bào)數(shù)起點(diǎn)*/
{pre=k1;
k1=k1->next;
count++;
}
while(k1->next!=k1) /*當(dāng)循環(huán)鏈表中的結(jié)點(diǎn)個(gè)數(shù)大于1時(shí)*/
{ p=k1; /*從k1開(kāi)始報(bào)數(shù)*/
count=1;
while (count!=m) /*連續(xù)數(shù)m個(gè)結(jié)點(diǎn)*/
{ pre=p;
p=p->next;
count++;
}
pre->next=p->next; /*輸出該結(jié)點(diǎn),并刪除該結(jié)點(diǎn)*/
總結(jié)
以上是生活随笔為你收集整理的数组的最长平台c语言,2010台湾省C语言版高级的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: lofter如何收藏合集
- 下一篇: dsp c语言 计算正弦,DSP正弦函数