Arnett Postado Agosto 16, 2009 Denunciar Share Postado Agosto 16, 2009 Olá! Sou novo em C e neste fórum e gostaria de saber por que o código abaixo não funciona:int main() { int a[12] = {}, b[12] = {}; int i, inteiro; for (i = 0; i < 12; i++) { scanf("%d", &a[i]); } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mnemonic Postado Agosto 16, 2009 Denunciar Share Postado Agosto 16, 2009 int main() { A função main é do tipo int, mas no final ela não tá retornando nenhum valor int. (ex: "return 0") int a[12] = {}, b[12] = {};Não entendi o porquê das chaves. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Arrk Postado Agosto 16, 2009 Denunciar Share Postado Agosto 16, 2009 Arnett, Cuidado com o valor de retorno das funções no C. Não se sabe o que vai ser retornado de uma função se o return (algumacoisa); for omitido no final do escopo dela. Fiz um programa baseado no seu:#include <stdio.h> int finteiro(void){ } int main(void) { printf("valor retornado pela função: %d\n", finteiro()); return 0; } A saída desse programa aqui foi: "valor retornado pela função: 2". E se você especificar tipo de retorno void pra main vai gerar um erro de compilação, porque a main tem que ter como tipo de retorno inteiro. E as duas chaves sem nada dentro tem uma razão interessante. No C/C++, quando se declara um array com tamanho definido e não se dá valores a todos os elementos do array, o resto é preenchido com zero. Então o código a seguir geraria o array [ 2 0 0 0 0 ]: int array[5] = {2};Espero ter ajudado.Abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Arnett
Olá! Sou novo em C e neste fórum e gostaria de saber por que o código abaixo não funciona:
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.