真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言螺旋函數(shù),c語言螺旋輸入

c語言螺旋

可以弄一個演示程序

創(chuàng)新互聯(lián)公司專注于網(wǎng)站建設(shè)|成都網(wǎng)站維護公司|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計與制作經(jīng)驗,為許多企業(yè)提供了網(wǎng)站定制設(shè)計服務(wù),案例作品覆蓋木屋等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身制作品質(zhì)網(wǎng)站。

#includestdio.h

int?s[20][20],N;

void?output()

{

int?i,j;

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

{

for(j=0;?jN;?j++)

printf("%4d?",s[i][j]);

putchar('\n');

}

}

main()

{

int?i=0,j=0,k=1,n;

printf("input?a?number:");?/*輸入n*n階的n*/

scanf("%d",N);

for(n=0;?n(N+1)/2;?n++)

{

while(jN-n)?//?這里是向右

s[i][j++]=k++;

i++;

j--;

while(iN-n)?//?這里是向下

s[i++][j]=k++;

i--;

j--;

while(j=n)?//?這里是向左

s[i][j--]=k++;

i--;

j++;

while(in)?//?這里是向上

s[i--][j]=k++;

i++;

j++;

printf("n=%d?時候\n",n);

output();

}

}

可以看到是依此一層一層填充的。

怎么用C++求螺旋函數(shù),要用純C++不要C語言的。。。求大神指點

#include iostream

#include iomanip

using namespace std;

void snake(int *a, int n){

int i,j,m,tag=0; //tag表示此時方向,0、1、2、3分別代表向右、下、左、上

i=0, j=0;

*(a+i*n+j)=1;

j++;

for(m=2; m=n*n; m++){

*(a+i*n+j)=m;

switch(tag){

case 0: //向右

if(j==n-1 || *(a+i*n+j+1)!=0)

i++, tag=1;

else

j++;

break;

case 1: //向下

if(i==n-1 || *(a+(i+1)*n+j)!=0)

j--, tag=2;

else

i++;

break;

case 2: //向左

if(j==0 || *(a+i*n+j-1)!=0)

i--, tag=3;

else

j--;

break;

case 3: //向上

if(i==0 || *(a+(i-1)*n+j)!=0)

j++, tag=0;

else

i--;

break;

}

}

cout"\n矩陣如下:\n";

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

coutendl;

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

coutsetw(4)setfill(' ')*(a+i*n+j);

}

cout endl endl;

}

int main(){

int n;cout"請輸入矩陣行數(shù):";

cinn;

int *m=new int[n*n];

int i,j;

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

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

*(m+i*n+j)=0;

snake(m,n);

return 0;

}

螺旋矩陣C語言實現(xiàn)

說一下這個螺旋矩陣的實現(xiàn)方式。

首先,go函數(shù)一個遞歸,這你得明白,而遞歸的實現(xiàn)原理類似于棧,也就是先進后出的執(zhí)行方式。很多人會理解成這樣的執(zhí)行方式:

ri = 1, rj = 2, gi = 0, gj = 1, start = 2, dir = 0

ri = 2, rj = 2, gi = 1, gj = 3, start = 3, dir = 1

ri = 2, rj = 1, gi = 3, gj = 2, start = 4, dir = 2

ri = 1, rj = 1, gi = 2, gj = 0, start = 5, dir = 3

ri = 1, rj = 0, gi = 2, gj = -1, start = 6, dir = 3

ri = 1, rj = 1, gi = 0, gj = 0, start = 7, dir = 0

ri = 0, rj = 1, gi = -1, gj = 0, start = 8, dir = 0

ri = 1, rj = 1, gi = 0, gj = 2, start = 9, dir = 1

從start = 2開始一直往里面進,然后算到start = 9?

不,其實并不是這樣,恰恰相反,遞歸會不斷的往里面進,一直進到最里層,也就是達到條件

if(startfinal) return;為止。然后開始出棧,從start = 9開始算,算回到start = 8.。。一直到start = 2結(jié)束。

也就是最后的執(zhí)行順序應(yīng)該是:

ri = 1, rj = 1, gi = 0, gj = 2, start = 9, dir = 1

ri = 0, rj = 1, gi = -1, gj = 0, start = 8, dir = 0

ri = 1, rj = 1, gi = 0, gj = 0, start = 7, dir = 0

ri = 1, rj = 0, gi = 2, gj = -1, start = 6, dir = 3

ri = 1, rj = 1, gi = 2, gj = 0, start = 5, dir = 3

ri = 2, rj = 1, gi = 3, gj = 2, start = 4, dir = 2

ri = 2, rj = 2, gi = 1, gj = 3, start = 3, dir = 1

ri = 1, rj = 2, gi = 0, gj = 1, start = 2, dir = 0

好了,這就是以上的原理,然后再來看你的gi和gj,處理沖突這一點理解得很對,但是不是說什么跳到05啥的,處理沖突是這一句:

if(a[ri][rj]==0),首先,ri、rj、gi、gj都是坐標(這兒不懂的追問)看上面的數(shù)據(jù),在start 等于9、7、5的時候,ri 、rj的值是一樣的,這也就沖突了,在start等于9的時候 ,

a[ri = 1][rj =1]已經(jīng)不等于0了,到了if語句肯定不成立了, 自然就走的else,然后用得坐標就變成了gi和gj,也就是start = 7的時候, 位置就是a[gi][gj],實現(xiàn)了解決沖突的效果。

至于gi和gj什么時候+1什么時候-1這個,這個需要看一下原作者的思路,通過不同的dir去控制不同的位置,沖突的g坐標將其當做r坐標再去判斷是否該位置上有值,有的話繼續(xù)根據(jù)dir去尋找,一直到發(fā)現(xiàn)該位置是0,然后將其占有。

不懂的繼續(xù)追問

急求,用C語言實現(xiàn)N階螺旋數(shù)字方陣,謝謝

1. 編程,統(tǒng)計在所輸入的50個實數(shù)中有多少個正數(shù)、多少個負數(shù)、多少個零。

2. 編程,計算并輸出方程X2+Y2=1989的所有整數(shù)解。

3. 編程,輸入一個10進制正整數(shù),然后輸出它所對應(yīng)的八進制、十六進制數(shù)。

4. 一個數(shù)如恰好等于它的因子之和,這個數(shù)就稱為“完數(shù)”。編程序找出1000以內(nèi)的所有完數(shù),并輸出其因子(6是一個"完數(shù)",它的因子是1,2,3)。

5. 輸入一個正整數(shù),輸出它的所有質(zhì)數(shù)因子(如180的質(zhì)數(shù)因子為 2、2、3、3、5)。

6. 輸入20個整數(shù)存入一數(shù)組,輸出其中能被數(shù)組中其它元素整除的那些數(shù)組元素。

7. 輸入兩個數(shù)組(數(shù)組元素個數(shù)自定),輸出在兩個數(shù)組中都出現(xiàn)的元素(如a[5]=,b[6]=,則輸出3、5)。

8. 輸入兩個數(shù)組(數(shù)組元素個數(shù)自定),輸出在兩個數(shù)組中都不出現(xiàn)的元素(如a[5]=,b[6]=,則輸出2、4、6、3、7、9、10、-1)。

9.編程,將字符數(shù)組S2中的全部字符拷貝到字符數(shù)組S1中(不用strcpy函數(shù))。

10.給定年份year,判別該年份是否閏年(定義一個宏以判別該年份是否閏年)。

11.輸入一行小寫字母后,將字母變成其下一字母(a變成b、b變成c、c變成d、…、x變成y、y變成z、z變成a)輸出。

12. 編寫一個函數(shù),處理n行、n列的二維數(shù)組:將每一行的元素同除以該行上絕對值最大的元素。

13. 編寫函數(shù),求任意階多項式 a0+a1X+a2X2+...+anXn 的值并返回多項式的值。

14. 設(shè)計一個函數(shù),使給出一個數(shù)的原碼,能得到該數(shù)的補碼。

15. 編寫函數(shù),求m行、n列的二維數(shù)組全體元素中負數(shù)的個數(shù)。

16. 編寫函數(shù),返回在一個整數(shù)組中出現(xiàn)次數(shù)最多的數(shù)及其出現(xiàn)次數(shù)。

17.編一個程序,打入月份號,輸出該月的英文月名,要求用指針數(shù)組處理。

18.編寫遞歸函數(shù),將輸入的字符串按與輸入相反的順序輸出。

19. 編寫函數(shù),在n個元素的一維數(shù)組中,統(tǒng)計比相鄰元素大的數(shù)組元素個數(shù)并將統(tǒng)計數(shù)返回(不考慮a[0]和a[n-1]),要求以指針變量而不是數(shù)組名作參數(shù)。

20. 編寫函數(shù),在n個元素的一維數(shù)組中,找出最大值、最小值并傳送到調(diào)用函數(shù)。

21. 編寫一個函數(shù),統(tǒng)計m行n列二維數(shù)組中有多少個正數(shù)、多少個負數(shù),多少個零,并返回統(tǒng)計結(jié)果。

22. 寫一函數(shù),在給定的一行以"."結(jié)束的字符中,找出最長的單詞并輸出。

23. 編寫一個函數(shù)print,打印一個學(xué)生的成績數(shù)組,該數(shù)組中有5個學(xué)生的數(shù)據(jù)記錄,每個記錄包括num,name,score[3],用主函數(shù)輸入這些記錄,用print函數(shù)輸出這些記錄。

24. 把文本文件d1.dat復(fù)制到文本文件d2.dat中,要求僅復(fù)制d1.dat中的英文字符。

25. 編程,把文本文件d1.dat復(fù)制到d2.dat(其中空格字符不復(fù)制)。

26. 編程,把文本文件d1.dat復(fù)制到d2.dat(其中大寫英文字母要轉(zhuǎn)換為小寫字母)。

27. 把文本文件d1.dat復(fù)制到文本文件d2.dat中,要求僅復(fù)制d1.dat中除英文字符和數(shù)字以外的其它內(nèi)容。

28. 求出1至100之間的素數(shù)(只能被1和自身整除的數(shù))并順序?qū)懭胛募u.dat。

29.磁盤文件a1和a2,各自存放一個已按字母順序排好的字符串,編程合并二個文件到a3文件中,合并后仍保持字母順序(如a1中存放:"accel",a2中存放"ilrz",則a3中為"acceillrz")。

30.已知順序文件C.DAT 存放著程序設(shè)計基礎(chǔ)的考試成績,每個記錄包含學(xué)號(8位字符)和成績(三位整數(shù))兩個數(shù)據(jù)項。編制程序,從文件中讀入學(xué)生成績,將大于或等于60分的學(xué)生成績再形成一個新的文件SCORE60.DAT保存在A盤上,并顯示出學(xué)生總?cè)藬?shù)(少于1000)、平均成績和及格人數(shù)。

31.已知head指向一個帶頭結(jié)點的單向鏈表,鏈表中每個結(jié)點包含數(shù)據(jù)域和指針域。請編寫程序?qū)崿F(xiàn)如圖所示鏈表的逆置。

若原鏈表為:

head

a

b

C ∧

逆置后鏈表應(yīng)為:

head

c

b

a ∧

32、編制函數(shù)實現(xiàn)在一個帶頭結(jié)點(head)的單向鏈表(數(shù)據(jù)有序)中刪除相同數(shù)據(jù)的結(jié)點(相同數(shù)據(jù)的結(jié)點只保留一個)。

33、編制一程序,將字符computer賦給一個字符數(shù)組,然后從第一個字母開始間隔的輸出該串。請用指針完成。

34、編制一程序,將字符串的第m個字符開始的全部字符復(fù)制成另一個字符串,要求在主函數(shù)中輸入字符串及m的值并輸出復(fù)制結(jié)果,在被調(diào)用函數(shù)中完成復(fù)制。

35、有4名學(xué)生每個學(xué)生考4門課程,要求在用戶輸入學(xué)生學(xué)號以后能輸出該生的全部成績,用指針型函數(shù)來實現(xiàn)。請編寫函數(shù)float *search().

main()

,,,};

float search(),p;

int I,m;

printf(“enter the number of student:”);

scanf(“%d”,m);

printf(“the score of NO.%dare:\n”,m);

p=search(score,m);

for(I=0;I4;I++)

printf(“%52f\t”,*(p+I));

}

float search(float (pointer)[4],int n)

{}

36、有4名學(xué)生每個學(xué)生考4門課程,要求在用戶找出有不及格課程的學(xué)生學(xué)號并輸出全部成績,用指針來實現(xiàn)。

37、編制一程序?qū)崿F(xiàn)將十進制數(shù)轉(zhuǎn)換成二進制數(shù),并存放于一維數(shù)組b中,然后輸出。

38、以下函數(shù)p的功能是用遞歸方法計算x的n階勒讓德多項式的值。已有有調(diào)用語句p(n,x);請編寫p函數(shù)。遞歸公式如下:

1

X

PX(X)=

((2N-1)*X* Pn-1(X)-(n-1)* Pn-2(X)/n

39、編程實現(xiàn)如下5*5階的螺旋方陣。

1

2

3

4

5

16

17

18

19

6

15

22

21

20

7

14

23

24

25

8

13

12

11

10

9

40、編一程序?qū)崿F(xiàn)求所有不超過200的N值,N的平方是具有對稱性質(zhì)的回文數(shù)。所謂回文數(shù)就是將一個數(shù)從左向右與從右向左讀是一樣的,例如34543和1234321都是回文數(shù)。

41、編寫一函數(shù)實現(xiàn)將一個整數(shù)按逆序存放到一個數(shù)組中。

42、請編寫程序:從鍵盤輸入一個字符串,將其中的小寫字母全部轉(zhuǎn)換成大寫字母,輸出到磁盤文件“upper.txt”中去保存。輸入的字符串以“!”結(jié)束。

43、設(shè)文件number.dat中存放了一組整數(shù)。請編程統(tǒng)計并輸出文件中正整數(shù)、負整數(shù)和零的個數(shù)。

44、請編程:從鍵盤上讀入一個16進制無符號數(shù)m,調(diào)用函數(shù)rightrot將m中的原始數(shù)據(jù)循環(huán)右移n位。并輸出移位前后的內(nèi)容。

45、設(shè)計一遞歸函數(shù)計算下列函數(shù):

PX(X,N)=X-X2+X3-X4+……+(-1)N-1XN(N0)

46、設(shè)計一遞歸函數(shù)計算x的n次方。

47、設(shè)計一遞歸函數(shù)實現(xiàn)將小于32768的整數(shù)按逆序輸出。

48、設(shè)計一遞歸函數(shù)實現(xiàn)將小于32768的整數(shù)按逆序輸出。

49、設(shè)計一遞歸函數(shù)實現(xiàn)如下函數(shù):

ack(m,n)= n+1 當m=0時

ack(m-1,1) 當n=0時

ack(m-1,ack(m,n-1)) 當n0,m0時

50、設(shè)計一遞歸函數(shù)實現(xiàn)將任一正整數(shù)轉(zhuǎn)達換成二進制數(shù)。


網(wǎng)站題目:c語言螺旋函數(shù),c語言螺旋輸入
本文地址:http://weahome.cn/article/hocpdi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部