Ir ao conteúdo
  • Cadastre-se

C Algorítimo em C com um loop while que conte de 1 a 3.000.000, de 1 em 1.


Thmpv

Posts recomendados

Olá, voltei, gostaria de saber o que falta nesse código.

 

Ouvimos sempre como os computadores são velozes. Como você pode determinar 
a rapidez com que seu equipamento realmente funciona? Escreva um programa 
com um loop while que conte de 1 a 3.000.000, de 1 em 1. Toda vez que a 
contagem atingir um múltiplo de 1.000.000, imprima este número na tela. Use seu 
relógio para cronometrar quanto tempo leva cada milhão de repetições do loop.

 

#include <stdio.h>

int main(){
    int contador;
    
    while(contador <=3000000){
        printf("%d  ", contador);
        contador ++;
        
        if((contador % 1)==0){
            printf("%d  ", contador);
        }
            
    }

    return 0;
}

 

 

 

grato.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

34 minutos atrás, Thmpv disse:

@Flávio Pedroza Rapaz eu até fiz assim como você fez, porém eu sou péssimo em interpretar o enunciado, quando ele diz: Toda vez que a contagem atingir um múltiplo de 1.000.000, imprima este número na tela.

 

Isso me gera muitas dúvidas.

 

 

Toda vez que o número chegar em 1.000.000, 2.000.000 e 3.000.000 você imprime na tela.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

3 minutos atrás, Flávio Pedroza disse:

Toda vez que o número chegar em 1.000.000, 2.000.000 e 3.000.000 você imprime na tela.

Pelo que eu vejo não é só isso, você teria que mostrar o tempo decorrido na tela.

 

para mostrar o tempo decorrido @Thmpv você pode fazer algo assim.

#include <stdio.h>
#include <time.h>


int main(void)
{
    clock_t tempo_decorrido = clock();
    printf("Pressione enter para ver o tempo decorrido desde que o programa foi iniciado\n");
    getchar();
    
    tempo_decorrido = clock()-tempo_decorrido;
    printf("O tempo decorrido em segundos foi %f\n", ((float)tempo_decorrido)/CLOCKS_PER_SEC);
    printf("Pressione enter para continar.\n");
    getchar();
    return(0);
}

 

link para testar

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Em 12/03/2022 às 22:19, Thmpv disse:

Toda vez que a contagem atingir um múltiplo de 1.000.000, imprima este número na tela.

 

Isso me gera muitas dúvidas.

É como diz na definição dos múltiplos dos números inteiros: São números obtidos pela multiplicação de n (que no caso é 1 milhão) por um fator. No seu código o contador vai representar esse número, então você só tem que calcular o módulo dele por 1 milhão (e não por 1 como fez) e mostrar a mensagem quando for igual a zero.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Thmpv Ola,

 

Aplicada as correções para esse exercício, espero que tenha iniciado a variável de controle do loop , reconheço em novos programadores algumas práticas que vejo em livros velhos encardidos de linguagem c que na atualidade são desnecessárias. Sugiro que declare, doravante, as variáveis junto a seu bloco lógico.

 

Fora as questões estéticas, uma resposta tem seu código-fonte como este:

#include"stdio.h"
int
main(void){
  int contador = 1; while(contador<=3000000){
  	if((contador%1000000)==0){
		printf("%d ", contador);
		}
	++contador;
	}
  putchar('\n');
  return 0;
  }

OU

#include <stdio.h>
int main(void){
  
  int contador = 1;
  while(contador<=3000000){
  	if((contador%1000000)==0){
		printf("%d ", contador);
	}
	++contador;
  }
  putchar('\n');
  
  return 0;
}

 

 

Em 12/03/2022 às 18:21, Thmpv disse:

Use seu relógio para cronometrar quanto tempo leva cada milhão de repetições do loop

Tentar é divertido, além humanamento impossível ter o registro exato, existe também a possibilidade de sua impressão ("1000000 2000000 3000000 ") não ocorrer número por número e sim de uma só vez; na saída do loop ou do programa.

 

🙂 — É isso!

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

11 horas atrás, Thmpv disse:

Mais e a parte que diz que tem rolar o loop de 1 a 3000000?

11 horas atrás, Thmpv disse:

Minha dúvida era em fazer um codigo que desse para mostrar os dois(multiplos e loop).

Quer a impressão do contador, não somente a cada acúmulo de 1kk e sim também a cada incremento dele?

print_return_line.gif.1537ddd24e029af52d27f38f9196b9bd.gif

Em 12/03/2022 às 18:21, Thmpv disse:

 while(contador <=3000000){
        printf("%d  ", contador);
        contador ++;

Ao utilizar a impressão usual encheio a tela do terminal de caracteres, para contornar esse formato use o retorno ao inicial da linha com impressão carriage return ('\r').

#include"stdio.h"
int
main(void){
  int contador = 0; while(contador<3000000){
	++contador;
	printf("\r%d",contador);
	if((contador%1000000)==0){
		printf("\t%d\n",contador);
		}
	}
  return 0;
  }

 

 

Assim ou estou viajando, @Thmpv

🙂 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Com o relógio.

 

#include <stdio.h>
#include <time.h>

int main()
{
    int contador = 0;

    struct timespec start, stop;
    clock_gettime(CLOCK_REALTIME, &start);

    while (contador < 3000000)
    {
        ++contador;
        printf("\r%d", contador);
        if ((contador % 1000000) == 0)
        {
            clock_gettime(CLOCK_REALTIME, &stop);
            double elapsed = ((stop.tv_sec - start.tv_sec) * 1e6 + (stop.tv_nsec - start.tv_nsec) / 1e3) / 1e6;
            printf("\t%d em %lfsec\n", contador, elapsed);
        }
    }

    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

Em 18/03/2022 às 22:38, Thmpv disse:

Mais e a parte que diz que tem rolar o loop de 1 a 3000000?

Na verdade não consegui juntas as duas coisas. Ficou igual e esse ai, e um outro contando o loop numero por numero.

 

Não é pra imprimir os outros, é só pra contar, ele só vai imprimir quando for múltiplo de 1000000

 

while (contador <= 3000000) 
{
    if (contador % 1000000 == 0) 
        printf("%d  ", contador);
        
    contador ++;
}
                          

Não esqueça que é de 1 a 3000000, então o contador começa em 1 e não em zero.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!