Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como fazer meu loop parar a cada 20 vezes rodados?

Bom dia, eu criei um programa que exibe a multiplicacao dos digitos dos inteiros de 100 a 999 e tudo parece ok, no entanto o programa executa muito rapido e gostaria de que a cada 20x o loop for() rodado ele desse um system("pause");. Como posso fazer isso? Terei que criar um outro loop for(j < 21)?

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

int main() {
   int numero, t, produto, resto, i = 100;

      for (i; i < 1000; ++i) {  

         numero = i;
         t = numero;
         produto = 1;

         while (t != 0) {
            //multiplica os digitos do inteiro
            //quando t = 0 acaba o while
            resto = t % 10;
            produto = produto * resto;
            t  = t / 10;
         }

         printf("O produto dos digitos do numero %d = %d\n", numero, produto);
      }

   return 0;
}
2 respostas
solução!

Declara um contador e verifica se é menor que 20. Se sim, incrementa o contador. Se não, zera o contador e pausa o sistema.

Uma forma mais elegante de realizar essa pausa é, no lugar do System("pause"), você usar uma frase como "Pressione qualquer tecla para continuar..." acompanhada de um getch(), função declarada em <conio.h> que lê um caractere.

Recomendo fortemente que tente implementar isso sozinho. Mas, por referência, aqui está:

int count=0; //pode ser declarado junto com as suas variáveis, por questões de organização
if (count<20)
 {
    count++;
} 
else
 {
    count=0;
    printf ("\n\t---Digite qualquer coisa para continuar---\n");
    getch();  // requer a biblioteca conio.h
}

Muito obrigado Rafael