Thing I want is find the largest sum down a triangle,(movin g to adjacent numbers on the row below )there are many methods to go down.
75
95 64
17 47 82
18 35 87 10
20 04 82 47 65
19 01 23 75 03 34
88 02 77 73 07 63 67
99 65 04 28 06 16 70 92
41 41 26 56 83 40 80 70 33
41 48 72 33 47 32 37 16 94 29
53 71 44 65 25 43 91 52 97 51 14
70 11 33 28 77 73 17 78 39 68 17 57
91 71 52 38 17 14 91 43 58 50 27 29 48
63 66 04 68 89 53 67 30 73 16 69 87 40 31
04 62 98 27 23 09 70 98 73 93 38 53 60 04 23
I wrote a programme with a recursive() called finder.but it dose not work properly,at run time it becomes to a infinite status.please help me to detect the error at runtime.here is the code.
i think the error is the changing value of x after a round of for loop.how can i fix it?
75
95 64
17 47 82
18 35 87 10
20 04 82 47 65
19 01 23 75 03 34
88 02 77 73 07 63 67
99 65 04 28 06 16 70 92
41 41 26 56 83 40 80 70 33
41 48 72 33 47 32 37 16 94 29
53 71 44 65 25 43 91 52 97 51 14
70 11 33 28 77 73 17 78 39 68 17 57
91 71 52 38 17 14 91 43 58 50 27 29 48
63 66 04 68 89 53 67 30 73 16 69 87 40 31
04 62 98 27 23 09 70 98 73 93 38 53 60 04 23
I wrote a programme with a recursive() called finder.but it dose not work properly,at run time it becomes to a infinite status.please help me to detect the error at runtime.here is the code.
Code:
#include<stdio.h>
void finder(int x,int y);
int tot;
int a[15][15]={{75},{95, 64},{17, 47 ,82},{18 ,35 ,87 ,10},{20, 04, 82 ,47 \
,65},{19 ,01, 23 ,75, 03, 34},{88 ,2, 77 ,73, 7, 63, 67},{99 ,65, 4 ,28, 6,\
16, 70, 92},{41 ,41 ,26, 56 ,83 ,40, 80 ,70, 33},{41, 48, 72 ,33 ,47 ,32, 37\
,16, 94 ,29},{53 ,71, 44, 65, 25 ,43 ,91, 52, 97 ,51 ,14},{70 ,11 ,33 ,28 ,77\
,73 ,17 ,78 ,39 ,68 ,17 ,57},{91 ,71 ,52 ,38 ,17 ,14 ,91 ,43 ,58, 50, 27 ,29,48},{63 ,66\
,4 ,68 ,89 ,53, 67, 30, 73 ,16 ,69 ,87 ,40 ,31},{4 ,62 ,98 ,27 ,23, 9 ,70 ,98, 73, 93 ,38, 53, 60, 4, 23}};
int main(){
tot=a[0][0];
finder(0,1);
}
void finder(int x,int y){
int i;static int max=0;
if(y==14){
for(i=x;i<=x+1;i++){
tot+=a[y][i];printf("%i\n",tot);
if(max<tot){max=tot;}
tot-=a[y][i];y--;
}
}
for(i=x;i<=x+1;i++){
tot+=a[y][i];
finder(i,++y);
tot-=a[y][i];y--;
}
}
Comment