Ir ao conteúdo
  • Cadastre-se

SkyWylker

Membro Júnior
  • Posts

    6
  • Cadastrado em

  • Última visita

posts postados por SkyWylker

  1. Bom dia@arfneto !
    Novamente, obrigado pela explicação. Tem coisas que não vi ainda e que não entendi muito bem, mas anotei tudo para consultar posteriormente. Gerou bastante conteúdo. Obrigado!

     

    Porém, o código está quase acabado (eu acho... hehehe):

     

    O enunciado diz:

    Citação

    Ao preencher cada posição do vetor, apresentar na tela, o número que foi preenchido e qual a posição do vetor que esse número foi inserido, em cada linha. 

     

    Pelo que entendi, preciso imprimir a posição do vetor e o número dentro dela, certo? Assim:

    [0] 2

    [1] 4

    [2] 6

    Novamente, não sei se entendi errado e se isso é possível.
    Porém, eu apenas consigo imprimir os números na tela, de ordem crescente (Imagem anexa)

     

     

    A segunda parte é eu colocar o bendito ponto final após o último número.

    Mesmo eu colocando o seu código

    for (int i = 0; i < n - 1; i++) printf("%d, ", vetor[i]);

    não deu certo. Ele imprime os números conforme a imagem anexa.
     

     

    Segue o código até agora:

     

    #include <stdio.h>
    #include <stdlib.h>
    
    int main (){
    
    int vetor[30], valor, i;
    int n = 30;
    
    
    for (int i = 0; i<30; i = i+1)
        {
            vetor[i] = i + i + 2;
        }
    
        int length = sizeof(vetor)/sizeof(vetor[0]);  
        printf("Posição dos Números no Vetor \n");
        /*Se eu não entendi errado, preciso imprimir o número e a sua posição dentro do vetor, certo?*/
        //[0] 2
        //[1] 4
        //[2] 6
    
        for (int i = 0; i < length; i = i+1) {   
            printf("%d\n", vetor[i]);   
        }
    
    printf("Ordem Decrescente:\n"); // <--- Ponto final após o último.
        for (int i = 0, j=30; i <n; i++,j--) {
              printf("%i,\n", vetor[j-1]);      
        }
    return 0;
    
    }

     

    Obrigado novamente!

    Imagem 1.png

    Imagem 2.png

  2. Bom dia @arfneto
    Muito obrigado pela ajuda. Consegui compreender algumas opções. Outras não muito pois não cheguei ainda nelas.

     

    Tenho apenas três dúvidas:

     

    Primeira:

    • Na opção de imprimir os valores: por que você usou o n?
      n-1 e vetor[n - 1]
      Se não entendi errado, é para chamar o número que está armazenado - 1(resultando em um par)?

    Segunda:

    • Eu confundi ao digitar os enunciados e coloquei que preciso imprimir do menor para MAIOR....
      Mas é ao contrário. Em ordem decrescente.
      Usei meu Google-Fu, fiz alguns testes com códigos que achei na internet mas não mudou nada. Sempre imprime na ordem crescente.

    Terceira:

    • O programa não está parando a execução no 60. Ele continua indefinidamente até obter Segmentation Fault:
      Como posso corrigir isso?

     

    #include <stdio.h>
    #include <stdlib.h>
    
    int main (){
    
    int vetor[30], valor, i, n;
    
    
    for (int i = 0; i<30; i = i+1)
        {
            vetor[i] = i + i + 2;
        }
    
    printf("Ordem Decrescente:\n");
        for (int i = 0; i < n-1; i++) printf("%i,\n ", vetor[i]);
        printf("%i.\n", vetor[n - 1]);
      
    return 0;
    
    }

    Novamente, muitíssimo obrigado!

     

    erro.png

  3. Spoiler

    Antes que alguém pense que quero apenas a resposta, peço que leia todo o post. Obrigado.

     

    Boa noite caros informáticos!

    Estou aqui para pedir auxílio na Linguagem C novamente!

    O exercício é longo, então, fiz como me foi ensinado: dividir e conquistar!

     

    Citação
    1. Criar um algoritmo que preencha um vetor de 30 posições com números múltiplos de 2, até a posição 60.
    2. Após, imprima em linhas separadas, o número que foi preenchido e qual a posição do vetor que esse número.
    3. Por último, imprima os vetores do menor para maior, separado por vírgula e com ponto final depois do último.

     

    A parte 2 e 3 estou empacado e não estou conseguindo fazer.

    Eu fiz alguns testes como colocar o if junto do for e separar o printf e declarar os vetores separados dentro de chaves.
    Mas não é nada prático e sei que tem como fazer de maneira mais eficiente.

    Gostaria de um auxílio em como finalizar. 

    Peço um pouco de paciência pois estou bem no começo e não sou expert (ainda 😈) e quero aprender como faz.
    Esse foi o código que consegui fazer até agora.

    Citação

     

    
    #include <stdio.h>
    #include <stdlib.h>
    
    int main (){
    
      int vetor[60];
    
      for (int i = 2; i < 60; ++i){  // Define um ciclo, adicionando +1 ao vetor, enquanto o número for menor que 60
            printf("%i\n", vetor[i]);
          }
    
        if(i % 2 == 0){  //Se o resto da divisão for igual a 0, o número será par.
        printf("Endereços: %i",vetor[i]);
        }
    
    return 0;
      
    }

     

     

     

    Muito obrigado, de coração.
     

  4. 48 minutos atrás, olliver.soul disse:

    Testei em um compilador online e rodou sem erro...

     

    prog.png.4166f3566f8b935af0b72c74016fec4e.png

     

    Talvez quem use o CodeBlocks tenha alguma dica.

    Hmmm..
    testei no Repl.it e funcionou.
    O problema deve ser no meu CodeBlocks mesmo.

    Agradeço a ajuda, Rocket!
    😅

    • Curtir 1
  5. 36 minutos atrás, olliver.soul disse:

    Remova o & do scanf da string.

     

    Na leitura de strings não há necessidade de usar esse operador..

     

    Além disso use float para os valores.

     

    Feito isso veja se resolve.

    Bom dia. Obrigado pela resposta.


    Não funcionou. Mesmo erro.
    Eu estava usando float antes mas ele não passava do segundo input.

  6. Bom dia.
    Estou fazendo algumas atividades em C e estou com uma dúvida.
     

    O enunciado da questão diz:
     

    Citação

    O preço de um produto possui taxas que tornam o produto mais caro, a alíquota de impostos do governo e a margem de lucro do vendedor, compõem o valor do produto. O preço final de um produto é calculado da seguinte forma. O preço da fábrica com o preço dos impostos (17% do preço de fábrica) e a percentagem do revendedor (33% do preço de fábrica). 
    Faça um algoritmo que leia o nome do produto e o preço de fábrica. Mostre o nome do produto, valor do produto sem ajuste, valor do imposto, margem de lucro da empresa e o preço final.

     

    Eu escrevi um código(abaixo) no CodeBlocks mas quando vou compilar, após inserir os dois inputs, o erro que recebo é esse:image.png.c3ca33713c94de13e74d29883d821e46.png


    Código:
     

    #include<stdio.h> //Biblioteca de entrada e Saída.
    #include<math.h> //Biblioteca de operações matemáticas.
    #include<locale.h> //Biblioteca para regionalização
    #include<stdlib.h> //Biblioteca de Alocação de Memória.
    
    int main ()
    {
        setlocale(LC_ALL, "Portuguese"); // Define a regionlização para Português.
    
        char nomeProduto[50]; //Variável Nome do Produto. Será definido pelo Usuário. Acredito que o erro esteja aqui.
        int valorProduto; //Variável valor do Produto. Será definido pelo Usuário.
        int valorImposto; //Variável valor do imposto, que é de 17% (0,17).
        int revendedor; //Comissão do revendedor, que é de 33% (0,33).
        int valorFinal; //Valor final do produto. Resultado da soma de valor do produto, imposto e comissão do revendedor.
        int lucro; //Quanto de lucro o produto deu. Resultado da subtração do valor final e valor do produto.
    
        printf("Informe o nome do produto: ");  //Input do usuário sobre o nome do produto.
        scanf("%s", &nomeProduto); //Lê o Input e o atribui a nomeProduto.
    
        printf("Informe o Valor do Produto: "); //Input do usuário sobre o valor do produto.
        scanf("%i", &valorProduto); ////Lê o Input e o atribui a valorProduto.
    
        valorImposto = (valorProduto * 0.17); //Calcula o valor do imposto, multiplicando o valor do produto pelo imposto.
        printf("O valor do imposto é: %.2f\n", valorImposto); //Imprime o valor do imposto.
    
        revendedor = (valorProduto * 0.33); //Calcula o valor da Comissão do revendedor, multiplicando o valor do produto pela comissão.
        printf("A porcentagem do revendedor é: %.2f\n", revendedor); //Imprime o valor da comissão do vendedor.
    
        valorFinal = (valorProduto + valorImposto + revendedor); //Soma dos valores do produto, imposto e comissão.
        printf("O Valor final do produto é: %.2f\n", valorFinal);//Imprime o valor final do produto.
    
        lucro = (valorFinal - valorProduto);//Calcula o lucro do produto pela subtração do valor final e inicial.
        printf("O Lucro do produto é: %.2f\n", lucro);//Imprime o valor do lucro do produto.
    
        return 0;
    }

     

    Eu fui comentando tudo para ajudar a gravar o que cada coisa faz. Isso ajuda quando eu for estudar posteriormente.
    Alguém poderia me dar uma luz onde estou errando? E por que estou errando nesse ponto?
    Infelizmente não tenho o timbre de bater o olho e descobrir onde está o erro. Por isso, gostaria de descobrir a falha para não errar novamente no futuro.

     

    Muito obrigado!

    P.S.: Caso haja alguma irregularidade no post, me avisem que eu excluo no mesmo instante.


     

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!