Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
volpatoc

C Programa de soma dos impares e multiplicação dos pares

Recommended Posts

Preciso criar um programa aonde o usuário escolhe um numero de 1 a 20, em seguida escolhe a opção 1 para somar os impares ou 2 para multiplicar os pares utilizando o while, caso o usuário digite acima de 21 ou qualquer numero diferente de 1 ou 2 escrever opção invalida. Alguém pode me dar uma luz ai em como organizar? as contas para somar os impares e multiplicar os pares só não to conseguindo organizar certinho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta o que você conseguiu fazer...

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem vindo, @volpatoc! Tente explicar melhor o que você precisa!

Você tem uma condição: Enquanto o nº for menor que 20;

Depois  o usuário escolhe se o programa vai somar os impares e multiplicar os pares?

Já fez alguma coisa? Poste o enunciado e o que já fez, conforme o @isrnick pediu.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@isrnick @André Ferreira da Silva  Isso eu preciso criar um programa aonde o usuario escolhe um numero de 1 a 20 e logo após escolhe se quer que some os impares de 1 ate o numero escolhido ou multiplique os pares de 1 ate o numero escolhido. 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)
22 horas atrás, volpatoc disse:

@isrnick @André Ferreira da Silva  Isso eu preciso criar um programa aonde o usuario escolhe um numero de 1 a 20 e logo após escolhe se quer que some os impares de 1 ate o numero escolhido ou multiplique os pares de 1 ate o numero escolhido.imageproxy.php?img=&key=932d69d8514fc575imageproxy.php?img=&key=932d69d8514fc575imageproxy.php?img=&key=932d69d8514fc575imageproxy.php?img=&key=932d69d8514fc575imageproxy.php?img=&key=932d69d8514fc575 

Vamos ver, já adianto que é complicado querer ensinar alguém a pensar porque a lógica de uma pessoa pode ser diferente da lógica de outra, mas vamos tentar ordenar os passos de um programa...

  • Recebe um número
  • Enquanto este número for maior que 20, o programa não aceita e continua pedindo este número.
  • Aceitou o número, inicie um multiplicador, um contador e um acumulador
  • Enquanto o acumulador for menor que o número aceito
  • Para o multiplicador, o mesmo atribui o valor atual vezes o valor acumulador
  • Para o somador, o mesmo atribui o valor inicial mais o valor acumulador
  • Note que após as operações, o valor do acumulador deve ser incrementado

Pode obedecer esses passos, pode inverter alguns passos... Como disse antes, é complicado ensinar alguém a pensar.

Como sempre falo em todos os tópicos sobre programação, colocando comentários nas linhas de seu programa lhe ajuda a pensar de maneira sequencial.

Desejo sucesso em seu aprendizado!

Editado por André Ferreira da Silva

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue o que consegui fazer @André Ferreira da Silva @isrnick porém em um deles eu preciso modificar o for por while e eu preciso adicionar a restrição de que caso o usuário insira um numero maior que 20 e na segunda etapa insira um numero diferente de 1 e 2 ele escreva opção inválida

31870952_1772949572770016_8936260559813214208_n.jpg

31882848_1772949606103346_7122861269350088704_n.jpg

adicionado 0 minutos depois

e também preciso unir os dois em um programa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilizando um 'while' para receber um número menor que 20, você pode utilizar:

/*

scanf ("%d", a);

while a>20{

         printf("Digite um número MENOR ou IGUAL a 20, P***!:");

         scanf("%d",a);

         }

*/

***É claro que um programa de computador não deve gritar ou falar palavrões para o usuário, só fiquei rindo de uma interação assim***

Ao invés de acrescentar '1' ao contador da soma dos números impares ou multiplicação dos pares, pode acrescentar '2' a ambos.

Um exemplo para a função soma utilizando o while:

 

int soma = 1

while (soma <=a)  //a=número inserido pelo usuário//

          soma = soma + 2;

 

Quanto a escolher entre 1 ou 2 e opção inválida, procure como utilizar corretamente a função 'SWITCH ()'

Não dependa exclusivamente de fóruns e publicações já prontas. O ideal é que vá a alguma livraria ou sebo e procure por um livro que se encaixe ao seu perfil como autodidata. Como disse antes, é complicado ensinar a alguém como pensar.

Desejo sucesso em seu aprendizado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

@André Ferreira da Silva consegue me dar uma luz aonde está errado?

 

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

main(){

int a, b;

printf("\n Insira um numero inteiro, positivo, menor ou igual a 20: ");
scanf("%d", &a);
printf("\n Digite 1 para somar os impares ou 2 para multiplicar os pares até o numero indicado: ");
scanf("%d", &b);
{
    if (b=1);
}

int i=a;

int soma=0;

for(i=0 ; i<=a ; i++)

{
if(i%2!=0)

soma=soma+i;

}

printf("\n O valor da soma dos impares e:\%d", soma);
}
{
    if (b=2);
}
{

int i=a;

int multiplicacao=2;
while (a!=20){
        if(a%2==0){
                multiplicacao *= a;
        }
        ++a;
}
printf("multiplicacao dos numeros pares: %d", multiplicacao);
{
    if (b>=3);
    {
        printf("\n Opcao invalida");
            }
}

{
    if (a>20);
    {
        printf ("\n Opcao invalida");
    }
}
{
    if (a<0);
    {
        printf ("\n Opcao invalida");
    }
}
{
    if (b<=0);
    {
        printf ("\n Opcao invalida");
    }
}
system ("pause");
return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
7 minutos atrás, volpatoc disse:

@André Ferreira da Silva consegue me dar uma luz aonde está errado?

 


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

main(){

int a, b;

printf("\n Insira um numero inteiro, positivo, menor ou igual a 20: ");
scanf("%d", &a);
printf("\n Digite 1 para somar os impares ou 2 para multiplicar os pares até o numero indicado: ");
scanf("%d", &b);
{
    if (b=1);
}

int i=a;

int soma=0;

for(i=0 ; i<=a ; i++)

{
if(i%2!=0)

soma=soma+i;

}

printf("\n O valor da soma dos impares e:\%d", soma);
}
{
    if (b=2);
}
{

int i=a;

int multiplicacao=2;
while (a!=20){
        if(a%2==0){
                multiplicacao *= a;
        }
        ++a;
}
printf("multiplicacao dos numeros pares: %d", multiplicacao);
{
    if (b>=3);
    {
        printf("\n Opcao invalida");
            }
}

{
    if (a>20);
    {
        printf ("\n Opcao invalida");
    }
}
{
    if (a<0);
    {
        printf ("\n Opcao invalida");
    }
}
{
    if (b<=0);
    {
        printf ("\n Opcao invalida");
    }
}
system ("pause");
return 0;
}

 

 

Boa tarde

 

Devo lhe perguntar, por que poe ";"(ponto e virgula) na frente dos "if"?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o @Leonardo0308 mencionou acima, operadores condicionais (if, else, while) verificam uma condição e executam um procedimento, não são um procedimento.

Você pode declarar uma variável para acumular os valores processados e uma variável para contador.

Vamos tentar ajudar...

int a, b, st1, cont1;                                                                           //declaração das variáveis

printf ("Insira um número menor ou igual a 20:");         //Solicitação de entrada

scanf ("%d",a);                                                              //Leitura do dado de entrada

while (a>20)                                                                 //Verificação condicional para executar o programa

{

  printf("Insira um número MENOR ou IGUAL a 20");

  scanf("%d",&a);

}                                                                                   

/*Até aqui, é só para o programa aceitar um número até 20

agora vamos as instruções do programa*/

printf("Digite:"\n);

printf("1 - para somar os números impares até %d",a)\n;   

printf("2 - para multiplicar os números pares até %d",a)\n;

scanf("%d",&b);

if (b==1)                 //Condição para fazer a contagem dos impares//

/*Cuidado para não confundir o operador de atribuição (=) com o de igualdade (==)*/

{

st1 = 1;

cont1=3;                //O primeiro número impar é 1, o próximo é 3// 

while (cont1 <= a)

         {

         st1 = st1+cont1;                                      //Operação de soma//

         cont1 = cont1 + 2;                                   //Somar 2 faz a variável 'cont1' ir para o próximo número impar//

          }                                 

         printf ("Soma dos impares ="%d,st1);    //Impressão do valor armazenado//

                                                                    //Finaliza este 'while'//

}                             //Finaliza o if//

 

else                       //abre o outro condicional para o if//

{

    if (b==2)           //Abre um outro 'if' dentro do 'else'//

    {

    st1=2;              //O primeiro número par é 2//

   cont1=0;             //Se colocar 2, pode gerar um resultado errado, mas a primeira iteração do programa será = 0//

         while (cont1<=a)  

         {

          st1=st1 * cont1;             //Operação de multiplicação//

          cont1=cont1 + 2;

          }

          printf("Multiplicação dos pares: %d", st1);

    else

    printf ("Opção inválida")                      // Opção para qualquer outro valor de b//

    }         //fecha um if//

}             //fecha outro if//

 

*Escrevi sem compilar, sem testar, tudo da cabeça na hora...Pode ser que o CTRL C / CTRL V para o compilador não funcione...*

**Lembra que eu disse para colocar comentários nas linhas?**

***Utilizando a função 'switch ()' ficaria mais simples...***

****Essa foi a minha maneira de programar o que descreveu, com base no que já fez. Por isso que eu disse que é complicado ensinar alguém a pensar****

 

Desejo sucesso em seu aprendizado! Abraço!

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






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

×