Ir para conteúdo

exata0mente

Members
  • Total de itens

    6
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre exata0mente

Informações Pessoais

  • Sexo
    Masculino

Contato

  1. exata0mente

    String x Vetor

    Nathália! Dei uma rápida olhada na função prova. Este scanf() está faltando o operador de endereço &. scanf(" %c ", quest[j]); Esta função (prova) é do tipo int mas não tem nenhum return, veja se está correto.
  2. exata0mente

    C++ Algoritmo. Me ajudem!

    Amigo, De forma bem simples, um número é par quando ele é um múltiplo de 2: 2, 4, 6, 8, 10, 12, 14, ... Se você dividir um número n por 2 e não tiver nenhuma sobra (resto da divisão for igual a 0) este número é par, se tiver sobra este número é impar!
  3. exata0mente

    Iniciante em C uso de struct dúvidas

    Estamos tratando de estrutura aninhada (caso queira aprofundar nas pesquisas). Para acessar cada membro de uma estrutura, você deve colocar na instrução a variável, ponto '.', membro da estrutura. Conforme você fez aqui: scanf("%d", &vprodutos[posicao].codigo); O mesmo serve para "estruturas de estrutura", é como se fosse uma caixa dentro de outra, ou, analogamente, um if dentro de um if, "você precisar entrar em um para poder entrar em outro". Tem que abrir a primeira para depois abrir a segunda. Para o seu código seria algo mais ou menos assim: carrinho[i].produto[j].codigo = vprodutos[i].codigo; abre a struct carrinho[] -> abre a struct produto -> abre o membro código. Lembre-se que struct é um tipo de variável também, como int, float, char. Isto quer dizer que o "tratamento" em instruções é basicamente igual, a diferença é que no struct você tem membros a acessar.
  4. exata0mente

    Vetor em função C

    Olá! Quando passamos um vetor como argumento para alguma função, o passamos por referência, ou seja, não enviamos o valor de cada elemento do vetor e sim o endereço do primeiro elemento do vetor. Lembre-se, quando uma variável é passada como argumento à uma função, esta função cria uma variável local em que "copia" o valor da variável da função chamadora. Agora imagine que você tenha um vetor teste[100]. Passar 100 valores para uma função seria algo que necessitaria de muito processamento, algo desnecessário. Por isso, convenciona-se que a passagem de vetor como argumento seja por referência! Abaixo um trecho extraído do livro "Treinamento em Linguagem C": "As matrizes são consideradas um tipo de dado bastante grande, pois são formados por diversas variáveis. Por causa disso, em linguagem C, determina-se ser mais eficiente existir uma única cópia da matriz na memória, sendo, portanto, irrelevante o número de funções que a acessem. Assim, não são passados os valores contidos na matriz, somente o seu endereço de memória. O que ocorre quando o endereço de uma matriz é passado para uma função como argumento? A função usa o endereço para acessar os elementos da matriz original, criada na função que chama. Isto significa que as alterações que a função efetuar nos elementos da matriz afetarão a matriz original. 'Ao passar o nome de uma matriz para uma função não se cria uma nova cópia da matriz; a passagem é por referência' " Ok, então o que faço? Se o endereço da memória do vetor é o que é passado para a função, significa que o que você fizer neste vetor, será gravado diretamente na memória, ou seja, não precisa retornar nenhum valor para a função chamadora! Logo, toda função que trate apenas vetores são do tipo void. Outro ponto é que o return retorna apenas um único valor. Segue o código com algumas alterações: #include <stdio.h> #include <stdlib.h> #define TAM 4 /*Depois altere para 25*/ void valoresnegativos(float *A); int main(void){ int i; int A[TAM]; for (i = 0; i < TAM; i++){ printf("Digite o valor %d: ", i+1); scanf("%d", &A[i]); } valoresnegativos(A); return 0; } void valoresnegativos(float *A){ int i; for (i = 0; i < TAM; i++){ if(A[i]<0) A[i]=0; } for(i = 0; i < TAM; i++) printf("%d\n",A[i]); }
  5. exata0mente

    Ajuda com progrma em c++

    Alguns pontos importantes, Seria interessante tratar os números como inteiro e não como char. Outro ponto é que, o que aconteceria se o usuário digitasse 99? Você teria que fazer 99 printf()? Pense em usar um laço de repetição para isso.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.