paulo1205
(usa Ubuntu)
Enviado em 16/05/2016 - 08:46h
Primeiro você testa a condição de parada, e depois você lê o valor da variável usada para testar tal condição. Será que essa é a ordem certa?
Fora isso, o programa tem outros problemas:
1) O tipo de retorno de
main() tem de ser
int; usar
void é uma violação direta do padrão, que infelizmente se popularizou, apesar de todo o erro, por causa de dois produtos de muita penetração no mundo do C: o livro “
C: The Complete Reference” (traduzido em Português como “C Completo e Total”), de Herbert Schildt, e os compiladores da Borland (Turbo C, Turbo C++ e Borland C++), cuja documentação está cheia de exemplos que usam
void.
2) Já que o tipo de retorno de
main() é
int, você deve retornar um valor inteiro quando o programa terminar. Por convenção, o valor zero tipicamente indica que a execução foi bem sucedida, e valores diferentes de zero costumam ser usados para sinalizar diferentes tipos de erro. Os padrões mais recentes do C aceitam omitir o comando
return em
main() se você quiser que ela retorne zero (sucesso), mas a versão original do padrão (que ainda é usada por padrão em vários compiladores) precisa que você coloque tal comando no seu programa.
3) Também a lista de parâmetros de
main() diverge do que prescreve o padrão. Com lista vazia, o C entende que a função pode ser chamada com qualquer quantidade de argumentos de quaisquer tipos. O padrão diz que, se você não quiser argumentos, deve usar
void na lista de parâmetros; se os quiser, deve ter exatamente dois parâmetros: o primeiro do tipo
int, e com sentido de contador da quantidade de strings no segundo argumento, e o segundo que tem tipo
char **, e funciona como vetor de strings.
4) Possivelmente seria mais apropriado usar inteiros para o contador.