Vi esse post há uns dias e achei que já tinham resolvido, mas lá vai.
O código funciona por sorte, pois há uma multiplicação entre os dois primeiros vetores, então mesmo digitando somente números negativos irá funcionar para achar o maior, porém a lógica usada para encontrar o maior número de um vetor não é essa.
Não está certo iniciar "m = 0", o certo é iniciar a variável que será testada no "if" com a primeira posição do vetor.
Por Exemplo:
m = vet[0]
for(i = 1; i < n; i++){
if(vet[i] > m) m = vet[i];
}
Para ficar mais claro, pense assim: Se você tiver um vetor de 5 posições apenas com números negativos, o que será printado de acordo com seu código? 0, e 0 não é o maior número.
Outra coisa, é horrível em questão de segurança iniciar o tamanho de um vetor por um scanf do usuário, se você ainda não tem conceitos de locação dinâmica, o melhor jeito é iniciar o vetor com por exemplo 1000 posições, perguntar para o usuário quantas ele quer usar, e então você faz o "for" até a quantidade que ele quer. E se ele quiser mais de 1000 posições? Manda digitar menos ou aprenda locação dinâmica.