老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

c語言函數報數問題 c語言函數常見問題

C語言,報數問題

這個問題是著名的Josephus排列,就是要用指針和鏈表才是正確的思路。不用指針就暫時放置這題。若有非指針解你完全可以采納他,若沒有用指針正確寫的,請結貼。給你個用指針并且還用鏈表的代碼參考以便你在未來學會指針后來閱讀。

創新互聯建站于2013年開始,先為茫崖等服務建站,茫崖等地企業,進行企業商務咨詢服務。為茫崖企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。

c語言 報數問題

方法一:(推薦)不受人數限制,因為采用的動態分配

#include stdio.h

#include malloc.h

/*********************************************************************

*以循環隊列的數據結構實現

*時間復雜度T(n)

*采用循環隊列數據結構,使得每次對數組的訪問次數減少到最少

**********************************************************************/

int main(void)

{

//定義并初始化各種變量

int i=0,//控制變量

num=0,//人數

die=0,//報數值

front,//隊頭位置

rear,//隊尾位置

temp=0;//中間變量

do

{

printf("\n請輸入人數(輸入小于0退出):");

scanf("%d",num);

printf("\n請輸入報數值:");

scanf("%d",die);

int *cycle=(int *)malloc((num+1)*sizeof(int));//多申請一個空間,在循環過程中方便處理

//依次編號,一號元素為0,暫時閑置

for(i=0;i=num;i++)

{

cycle[i]=i;

}

//置隊頭和隊尾的位置

front=1;

rear=num;

i=1;//報數器置1,開始報數

while(front!=rear)//當隊列中元素不止一個時,循環

{

//備份出隊數據

temp=(rear+1)%(num+1);//在位置rear后預留一個位置,以免有元素入隊

cycle[temp]=cycle[front];

front=(front+1)%(num+1);//隊頭元素出隊,隊頭位置加1

//如果出隊的人報數符合條件

if(i==die)

{

i=1;//報數重新置1,開始報數

printf("%d出隊\n",cycle[temp]);//顯示出隊的元素

}

//如果出隊的人報數不符合條件

else

{

i++;//報數值增1

//隊尾插入剛出隊的元素

rear=(rear+1)%(num+1);

cycle[rear]=cycle[temp];

}

}

printf("幸存者是%d\n",cycle[front]);

free(cycle);

}while(num!=0);

return 0;

}

方法二:(按你的要求)

#include stdio.h

/*********************************************************************

*以純粹的思維方法實現

*時間復雜度T(n)

*過程繁瑣,而且也不容易理解

*********************************************************************/

void main(void)

{

int result(int *p,int n,int m);

int i=0,m=0,n=0;

int num[50];

int *p;

for(;;)

{

printf("輸入人數和報數值:");

scanf("%d%d", n, m);

for(i = 0; i n; i++)

num[i] = i + 1;

p = num;

cout"The last one is NO."result(p,n,m)endl;

}

}

int result(int *p,int n,int m)

{

int i=0;

for(i=0;in;i++)

p[i]=i+1;

i=0; // i為每次循環時計數變量

int k=0; // k為按1,2,3...m報數時的計數變量

int die=0; // die為退出人數

while (dien-1) // 當退出人數比n-1少時(即未退出人數大于1時)執行循環體

{

if (p[i]!=0) k++; //如果編號為0,就不報數;如果編號不為0,報數加1

if (k==m) // 將退出的人的編號置為0

{

printf("%d退出\n",p[i]);

p[i]=0;

k=0;//重新開始報數

m++;//退出人數加1

}

i++;

if (i==n) i=0; // 報數到尾后,i恢復為0

}

while(*p==0) p++;

return *p;

}

C語言編程,報數問題!

#include stdio.h

int main()

{

int N,M,*a;

int i,j,position=1,total=0,chage;/*total出隊的人數*/

printf("Enter the N and M\n");

scanf("%d%d",N,M);

a=(int *)malloc(N*sizeof(int));

for (i=0;iN;i++)

a[i]=i+1;

while(1)

{

position+=M-1;

while (positionN-total)

position=position-N+total;

chage=a[position-1];

for (j=position;jN-total;j++)

a[j-1]=a[j];

a[N-total-1]=chage;

total++;

if (total==N)/*出隊人數等于N,程序結束*/

{

for (i=0;iN-1;i++)

printf("%d-",a[N-i-1]);

printf("%d\n",a[0]);

return 0;

}

}

}

c語言函數題:報數

#include

#include

#define n 200

void tian(int(*p)[n])

{

int i, j;

int mn=p[n-1][n-1];

for (i=0; imn; ++i)

{

for (j=0; jmn; ++j)

{

if ((i+j==mn-1))

{

p[i][j]=1;

continue;

}

if ((i+jmn-1))

{

p[i][j]=2;

continue;

}

if ((i+jmn-1))

{

p[i][j]=3;

continue;

}

}

}

}

int main()

{

int a[n][n];

int i, j;

int len;

scanf("%d", len);

a[n-1][n-1]=len;

tian(a);

for (i=0; ilen; ++i)

{

for (j=0; jlen; ++j)

printf("%2d", a[i][j]);

printf("\n");

}

return 0;

}


網頁名稱:c語言函數報數問題 c語言函數常見問題
文章出自:http://www.xueling.net.cn/article/hghdps.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 色玖玖综合 | 久久99精品久久久久婷婷暖 | 蜜桃无码AV一区二区 | 国产激情免费视频在线观看 | 美腿玉足一区二区三区视频 | 最新国产の精品合集bt伙计 | 中文字幕制服丝袜一区二区三区 | 国产成人精品a | 久久精品久久久久久久久久久久久 | 国产黄片软件在线观看 | 18禁成人网站免费观看 | 乱码午夜-极国产极内射 | 亚洲精品视频专区 | 91大神在线免费?看 h免费看 | 色77影院| 午夜激情一区二区 | 久久久久久久久久久99 | 久久久久久久久久久爱 | 人妻熟女一二三区夜夜爱 | 国产精品嫩草影院奶水 | 黄色毛片久久久久久久久久久 | 亚洲AV无码一区二区三区在线播放 | 胜者为王2天下无敌免费 | 欧美做爰又粗又大免费看软件 | 蜜芽AⅤ色欲AV浪潮夜夜嗨 | 四虎影视免费永久在线观看 | 精品久久综合1区2区3区激情 | www.com草莓视频 | 久久久久精品无码专区 | 小明成人永久免费视频在线观看 | 日本久久久久久久久久久 | 高柳の肉嫁动漫在线播放 | 欧美一个色资源 | 中文字幕久久精品 | 亚洲美女牲交高清淅视频 | 日韩欧美国产综合在线 | 精品欧美一区二区精品久久久 | 亚洲欧美综合久久久久久 | 日本涩涩视频 | 91精品观看91久久久久久国产 | 成人妇女免费播放久久久 |