Ir ao conteúdo
  • Cadastre-se
Cohiba

C Vetor definido pelo usuário

Posts recomendados

Eu estou tentando criar um algoritmo pra calcular média de notas mas não consigo criar um vetor que seja definido pelo usuário; eu preciso que o usuário insira a quantidade de tarefas que ele fez (isso seria o tamanho do vetor) e a nota de cada uma delas. Alguém pode me ajudar ?

--------------------------------------------------------------------------------------------------------------------

void main(){


    int ntarefa;



//Calculando media das tarefas
    printf("Quantas tarefas foram passadas pelo professor: ");
    scanf("%d", &ntarefa["%d"]);



    do{
        printf("Insira a nota da tarefa: ");
        scanf("%f", &ntarefa["%d"]);
        ntarefa--;
        ntarefa["%d"], ntarefa;
    }while(ntarefa >= 0);


system("pause");
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

A maneira correta seria reservar memoria do sistema dinamicamente.

 

exemplo

#include <stdio.h>
#include <stdlib.h>


int main(void)
{
  int *vetor,cont,tamanho;
  printf("\nDigite o tamanho do vetor:\t");
  scanf("%d%*c",&tamanho);
  /* Aloca memoria dinamicamente */
  vetor=malloc(sizeof(int)*tamanho);
  /* Preenche o vetor com numeros */
  for(cont=0; cont<tamanho; cont++)
    vetor[cont]=cont+1;
  /* Mostra o vetor para o usuario */
  for(cont=0; cont<tamanho; cont++)
    printf("\n%d",vetor[cont]);
  /* Pausa */
  getchar();
  /* Libera a memoria alocada */
  free(vetor);
  return(0);
}

 

  • Curtir 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim dinamicamente?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, caiobcc disse:

Como assim dinamicamente?

A memoria para o vetor vai ser definida dinamicamente no tempo de execução do programa.

 

Exemplo: int vetor[4]; Isso é uma definição estática, é ela vai existir enquanto o bloco de código que contém a variável for executado.

Agora no caso de int *vetor=malloc(sizeof(int)*4); você teria que eventualmente apagar essa alocação de memoria (isso quer dizer que foi alocado dinamicamente), porque se deixar vai acabar provocando um vazamento de memoria.

 

Para mais detalhes veja aqui https://www.ime.usp.br/~pf/algoritmos/aulas/aloca.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Eletrônica

PROMOÇÃO DE QUARENTENA

Aproveite o isolamento social para aprender eletrônica!
De R$ 39,90 por apenas R$ 19,90
Só até as 23h59min desta sexta-feira 10/04/2020

CLIQUE AQUI E COMPRE AGORA MESMO!