Before you even run the code, make sure you've fixed all the warnings.
Code:
$ gcc -Wall foo.c
foo.c:32:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
tri(char tab[], int taille)
^
foo.c: In function ‘main’:
foo.c:54:8: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[100]’ [-Wformat=]
scanf("%s",&mot);
^
foo.c:55:6: warning: passing argument 1 of ‘tri’ makes pointer from integer without a cast [-Wint-conversion]
tri(mot[100],strlen(mot));
^
foo.c:32:1: note: expected ‘char *’ but argument is of type ‘char’
tri(char tab[], int taille)
^
foo.c:56:10: warning: initialization makes integer from pointer without a cast [-Wint-conversion]
char ch="";
^
foo.c:59:10: warning: passing argument 1 of ‘strcat’ makes pointer from integer without a cast [-Wint-conversion]
strcat(ch,mot[j]);
^
In file included from foo.c:3:0:
/usr/include/string.h:133:14: note: expected ‘char * restrict’ but argument is of type ‘char’
extern char *strcat (char *__restrict __dest, const char *__restrict __src)
^
foo.c:59:13: warning: passing argument 2 of ‘strcat’ makes pointer from integer without a cast [-Wint-conversion]
strcat(ch,mot[j]);
^
In file included from foo.c:3:0:
/usr/include/string.h:133:14: note: expected ‘const char * restrict’ but argument is of type ‘char’
extern char *strcat (char *__restrict __dest, const char *__restrict __src)
^
foo.c:61:8: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int’ [-Wformat=]
printf("%s",ch);
^
foo.c: In function ‘tri’:
foo.c:44:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
It is not sufficient to just fix the errors.