Ir para conteúdo
  • 0

Programação C


Prodigious

Pergunta

Olá pessoal do XTibia

 

 

Estou aprendendo programação C. Recentemente cheguei na parte de laços (for, while, etc...) e tenho dificuldades com esses laços. Preciso de um programa em C que resolve calculos de multiplicação através do for. Por exemplo. O usuário digita, 2 e 3. O programa faz o seguinte calculo: 2+2+2 e imprime 6. Para incrementar, coloque leituras sobre laços, principalmente for.

 

Ajudou? REP+

 

Obrigado!

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

int main()

{

int primeiro, segundo, resultado = 0;

scanf("%d", &primeiro);

scanf("%d", &segundo);

int repeticoes = 1;

for (repeticoes; repeticoes <= segundo; repeticoes = repeticoes + 1)

resultado = resultado + primeiro;

 

printf("\nTotal: %d", resultado);

getch();

}

porque resultado = resultado+primeiro? onde a variavel repeticoes entra nisso?

Link para o comentário
Compartilhar em outros sites

  • 0

A variavel de repeticoes controla numero de vezes que

você vai fazer o loop (voltas).

no caso você atribui o valor dela (no caso 1, nao significa que vai fazer 1x)

e ordena o final do loop quando a condição dada for falsa (repeticoes <= segundo)

 

Ou seja,

 

"para repeticoes começando em 1, enquanto repeticoes for menor ou igual ao segundo numero, adicione 1 a repeticoes por loop"

 

 

O resultado recebe resultado + primeiro pelo fato de vc querer multiplicação certo ?

 

5 x 6 = 5 + 5 + 5 + 5 + 5 + 5 = 30

 

voce deu 0 para inicial do resultado entao :

 

1º loop = resultado = resultado + primeiro ( 0 = 0 + 5 --> 5) // repeticoes = repeticoes +1 ( 1 + 1 = 2 // verdadeiro)

2º loop = resultado = resultado + primeiro ( 5 = 5 + 5 --> 10) // repeticoes = repeticoes +1 ( 2 + 1 = 3 // verdadeiro)

3º loop = resultado = resultado + primeiro ( 10 = 10 + 5 --> 15) // repeticoes = repeticoes +1 ( 3 + 1 = 4 // verdadeiro)

4º loop = resultado = resultado + primeiro ( 15 = 15 + 5 --> 20) // repeticoes = repeticoes +1 ( 4 + 1 = 5 // verdadeiro)

5º loop = resultado = resultado + primeiro ( 20 = 20 + 5 --> 25) // repeticoes = repeticoes +1 ( 5 + 1 = 6 // verdadeiro)

6º loop = resultado = resultado + primeiro ( 25 = 25 + 5 --> 30) // repeticoes = repeticoes +1 ( 6 + 1 = 7 // falso) (nao repete)

 

Se errei algo ou esqueci só postar.

 

Um Abraço.

Editado por FaltouCriatividade
Link para o comentário
Compartilhar em outros sites

  • 0

só te digo isso: Vlw! Voc tem muitos REP+ comigo

 

20 = 20+5 => 30 ?

 

Foi mal, Ctrl + C / V nas linhas , kkk

 

Ja corrigi, qualquer coisa só perguntar.

Editado por FaltouCriatividade
Link para o comentário
Compartilhar em outros sites

  • 0

int i;

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

printf("%d\n", i);

 

porque esse for vai parar no 3?

i começa com 0. Imprime 0. Verifica a condição. 0 é igual a 3? Não! 0 é menor que 3? Sim! Então i++. i = 1.

Imprime 1. Verifica a condição. 1 é igual a 3? Não! 1 é menor que 3? Sim! Então i++. i = 2.

Imprime 2. Verifica a condição. 2 é igual a 3? Não! 2 é menor que 3? Sim! Então i++. i = 3.

Imprime 3. [O Que acontece daqui pra frente?] O for primeiro verifica o < do <= caso n for verdade verifica o = ??

 

porque resultado recebe resultado + primeiro pelo fato de eu querer multiplicação ?

Link para o comentário
Compartilhar em outros sites

  • 0

Como eu expliquei, a multiplicação, nada mais é doque -> numero + numero + numero ..

 

int main()
{
 int i;
 for(i = 0; i <= 3; i++)
  {
   if (i<= 3)
   {
    printf("menor");
   }
   else
    {
     printf("maior");
    }
    printf("\n\n%d\n", i);
  }
}

 

Esse codigo imprime oque você disse.

 

Se a condição é falsa ele não executa o for, por isso o loop para.

Até ele dar o valor 3 ele executa, quando ele atribui 4, ele para

e vai pro proximo comando.

 

Não entendi direito sua dúvida.. Se não for isso, só postar.

Link para o comentário
Compartilhar em outros sites

  • 0

Assim,o operador não é <= ?

 

Então

Primeiro o programa olha o operador <

ex: 5 < 3

Não é verdade.

Então o programa testa o operador =

5 = 3

Também não é verdade.

Então o laço para.

Link para o comentário
Compartilhar em outros sites

  • 0

int i;

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

printf("%d\n", i);

 

porque esse for vai parar no 3?

i começa com 0. Imprime 0. Verifica a condição. 0 é igual a 3? Não! 0 é menor que 3? Sim! Então i++. i = 1.

Imprime 1. Verifica a condição. 1 é igual a 3? Não! 1 é menor que 3? Sim! Então i++. i = 2.

Imprime 2. Verifica a condição. 2 é igual a 3? Não! 2 é menor que 3? Sim! Então i++. i = 3.

Imprime 3. [O Que acontece daqui pra frente?] O for primeiro verifica o < do <= caso n for verdade verifica o = ??

 

 

 

Slicer estou seguindo sua lógica ( verifica, roda, incrementa) poderia me ajudar?

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...