#include <stdio.h>
#include <stdlib.h>
#define MAX 100
void read ( int maze [ ] [ MAX] ) ;
int findPath ( int maze[ ] [ MAX] , int map[ ] [ MAX] , int size) ;
void print ( int map [ ] [ MAX] ) ;
int main( )
{
int maze [ ] [ MAX] = { } ;
int map [ ] [ MAX] = { } ;
int sum = 0 ;
int size = MAX;
read ( maze) ;
findPath ( maze, map, size) ;
print ( map) ;
return ;
}
void read ( int maze[ ] [ MAX] )
{
FILE * mazeFile;
int num, r, c, count;
if ( ( mazeFile
= fopen ( "t4.txt" , "r" ) ) == NULL
) {
printf ( "Error opening a file\n " ) ; }
else
{
while ( mazeFile != EOF)
{
fscanf ( mazeFile
, "%d" , & maze
[ r
] [ c
] ) ;
for ( r = 0 ; r < 100 ; r++ )
{
count = r + 1 ;
for ( c = 0 ; c <= count; c++ )
{
printf ( "(%d, %d) = %d\n " , r
, c
, maze
[ r
] [ c
] ) ; }
}
return ;
}
}
}
int findPath ( int maze[ ] [ MAX] , int map[ ] [ MAX] , int size)
{
int sum [ MAX] [ MAX] = { 0 } ;
int row, col, maxNum;
for ( row= ( size- 1 ) ; row >= 1 ; -- row)
{
for ( col- row; col>= 1 ;-- col)
{
maxNum = ( sum[ row+ 1 ] [ col] > sum [ row+ 1 ] [ col+ 1 ] ? col : col + 1 ) ;
sum[ row] [ col] = maze[ row] [ col] + sum [ row+ 1 ] [ maxNum] ;
map[ row] [ col] = maxNum;
}
}
return sum [ 0 ] [ 0 ] ;
}
void print ( int map [ ] [ MAX] )
{
printf ( "(%d, %d) = " , map
[ 0 ] [ 0 ] , map
[ 0 ] [ 1 ] ) ; return ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2RlZmluZSBNQVggMTAwCgp2b2lkIHJlYWQgICAgKGludCBtYXplIFtdW01BWF0pOwppbnQgZmluZFBhdGggKGludCBtYXplW11bTUFYXSwgaW50IG1hcFtdW01BWF0sIGludCBzaXplKTsKdm9pZCBwcmludCAgIChpbnQgbWFwIFtdW01BWF0pOwoKaW50IG1haW4oKQp7CiAgICBpbnQgbWF6ZSBbXVtNQVhdID0ge307CiAgICBpbnQgbWFwICBbXVtNQVhdID0ge307CgogICAgaW50IHN1bSA9IDA7CiAgICBpbnQgc2l6ZSA9IE1BWDsKCiAgICByZWFkICAgICAobWF6ZSk7CiAgICBmaW5kUGF0aCAobWF6ZSwgbWFwLHNpemUpOwogICAgcHJpbnQgICAgKG1hcCk7CgogICAgcmV0dXJuOwp9Cgp2b2lkIHJlYWQgKGludCBtYXplW11bTUFYXSkKewogICAgRklMRSAqIG1hemVGaWxlOwogICAgaW50IG51bSwgciwgYywgY291bnQ7CgogICAgaWYgKChtYXplRmlsZSA9IGZvcGVuICgidDQudHh0IiwgInIiKSkgPT0gTlVMTCkKICAgIHsKICAgICAgICBwcmludGYgKCJFcnJvciBvcGVuaW5nIGEgZmlsZVxuIik7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgd2hpbGUgKG1hemVGaWxlICE9IEVPRikKICAgICAgICB7ICAgICAgICAKICAgICAgICAgICAgZnNjYW5mIChtYXplRmlsZSwgIiVkIiwgJm1hemVbcl1bY10pOwoKICAgICAgICAgICAgZm9yIChyID0gMDsgciA8IDEwMCA7IHIrKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY291bnQgPSByICsgMTsKICAgICAgICAgICAgICAgIGZvciAoYyA9IDA7IGMgPD0gY291bnQ7IGMrKykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBwcmludGYgKCIoJWQsICVkKSA9ICVkXG4iLHIsIGMsIG1hemVbcl1bY10pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGZjbG9zZSAobWF6ZUZpbGUpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQp9CgppbnQgZmluZFBhdGggKGludCBtYXplW11bTUFYXSwgaW50IG1hcFtdW01BWF0sIGludCBzaXplKQp7CiAgICBpbnQgc3VtIFtNQVhdW01BWF0gPSB7MH07CiAgICBpbnQgcm93LCBjb2wsIG1heE51bTsKCiAgICBmb3Iocm93PShzaXplLTEpOyByb3cgPj0gMTsgLS1yb3cpCiAgICB7CiAgICAgICAgZm9yIChjb2wtcm93O2NvbD49MTstLWNvbCkKICAgICAgICB7CiAgICAgICAgICAgIG1heE51bSA9IChzdW1bcm93KzFdW2NvbF0gPiBzdW0gW3JvdysxXVtjb2wrMV0gPyBjb2wgOiBjb2wgKyAxKTsKICAgICAgICAgICAgc3VtW3Jvd11bY29sXT0gbWF6ZVtyb3ddW2NvbF0gKyBzdW0gW3JvdysxXVttYXhOdW1dOwoKICAgICAgICAgICAgbWFwW3Jvd11bY29sXSA9IG1heE51bTsKICAgICAgICB9CiAgICB9ICAKICAgIHJldHVybiBzdW0gWzBdWzBdOwp9Cgp2b2lkIHByaW50IChpbnQgbWFwIFtdW01BWF0pCnsKICAgIHByaW50ZiAoIiglZCwgJWQpID0gIiwgbWFwWzBdWzBdLCBtYXBbMF1bMV0pOwogICAgcmV0dXJuOwp9
compilation info
prog.c: In function ‘main’:
prog.c:11:24: error: ISO C forbids empty initializer braces [-Werror=edantic]
prog.c:11:9: error: zero or negative size array ‘maze’
prog.c:12:24: error: ISO C forbids empty initializer braces [-Werror=edantic]
prog.c:12:9: error: zero or negative size array ‘map’
prog.c:21:5: error: ‘return’ with no value, in function returning non-void [-Werror]
prog.c:14:9: error: unused variable ‘sum’ [-Werror=unused-variable]
prog.c: In function ‘read’:
prog.c:35:25: error: comparison between pointer and integer [-Werror]
prog.c:27:9: error: unused variable ‘num’ [-Werror=unused-variable]
prog.c: In function ‘findPath’:
prog.c:55:5: error: missing braces around initializer [-Werror=missing-braces]
prog.c:55:5: error: (near initialization for ‘sum[0]’) [-Werror=missing-braces]
prog.c:60:9: error: statement with no effect [-Werror=unused-value]
cc1: all warnings being treated as errors
stdout