Informática, perguntado por rafaerugawa, 1 ano atrás

Fiz esse programa que le o vetor de 10 numeros e mostra quantos numeros pares ele possui e imprimi todos os pares que foram digitados .
Agora eu queria deixar ele com sub rotinas ou procedimentos , tipo , uma para ler o vetor , outra para escrever e chamar esses procedimentos na main . (n consegui fazer )


#include
#include


int main (){
int i,v[10],vpar=0,j,vp[vpar];
for (i=0;i<10;i++){
printf("Digite os valores do vetor:");
scanf("%d",&v[i]);
if (v[i] % 2 == 0){
vpar ++;
vp[vpar]=v[i];
}
}
printf("O vetor digitado possui %d numeros pares.",vpar);
printf("\n Numeros pares digitados : \n");
for (i=1;i<=vpar;i++){
printf("%d \n",vp[i]);
}
return 0;
}


rafaerugawa: não estou achando o erro não =/
bokomoko: O programa conta os valores primeiro e adiciona ao vetor depois.
Assim a variável vpar , vai contar 1, coloca o primeiro elemento na posição 1 (deveria ser a posição 0) ... aí o que acontece ?
bokomoko: o que acontece se o v tiver 10 números pares ? em que posição o décimo elemento par vai ser adicionado ao vetor vp ?
rafaerugawa: é so adicionar primeiro o vetor e dps contar o vpar ?
rafaerugawa: vp[vpar]=v[i]; vpar ++;
rafaerugawa: ai vai começar alocando na posicao 0
bokomoko: sim, essa solução resolve.
Outra forma seria vp[vpar++] = v[i];
bokomoko: Esses erros passaram despercebidos porque é uma característica da linguagem C de não verificar os limites dos vetores. Outras linguagens como Java e Python verificariam e dariam erro, ajudando a depurar o programa mais rapidamente.
bokomoko: Conseguiu ver os programas no repl.it ?
rafaerugawa: Sim , muito obrigado!

Soluções para a tarefa

Respondido por bokomoko
1
A forma mais fácil é criar uma funçao, dentro do corpo do programa principal, mover o código do programa principal para dentro da função e chamá-la no programa principal. Assim você utiliza as variáveis globais do programa principal, dessa forma

https://repl.it/@bokomoko/Programa-original-do-Rafa-1

Só que a ideia de uma funçao é reutilizar o código. Aí entram os parâmetros, que é uma forma de passar dados do programa principal para a função, assim ... 

https://repl.it/@bokomoko/Programa-original-do-Rafa-2




Perguntas interessantes