Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda While


Talis TF

Pergunta

Estou tentando criar um While para imprimir a tabuada de um determinado numero;

int cont = 0;
while(cont < 10)
{
        printf("%d", x, " X ", *cont);
        cont++;
}

Onde o X é a quantidade que o usuario digitar.

alguém pode me ajudar? Se puder me explicar como faz eu agradeceria...

Obrigado

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Opa, eu fiz um exemplo rapidinho aqui, que o usuário digita 5 valores, e o programa calcula a tabuada desses números.

Eu utilizei um vetor e uma matriz bidimensional(2 dimensões), não sei se você tem conhecimento de matrizes... Comentei o código para facilitar o entendimento.

Caso fique alguma dúvida, poste ai.

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

int main () {
    
    int v[5];
    int r[5][10],i,j;
    
    
   //informa valores para o vetor  
     for(i=0;i<5;i++)
      {     
          printf("Digite 5 valores para seu vetor: ");
          scanf("%d",&v[i]); 
       } 
        
         
   //faz a tabuada e armazena na matriz
    for (i=0;i<5;i++)
    {
        for (j=0;j<10;j++)
        {
            r[i][j]=v[i]*(j+1); 
            
        }
    } 
    
    
    //Imprime valores da matriz
     for(i=0;i<5;i++) 
     {
         printf("\n");
        for(j=0;j<10;j++)
        {
          printf(" %5d",r[i][j]); 
        }
    }
   printf("\n\n\n"); 
   system("pause");     
    
}

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

  • 0

Bom, vamos por partes então:

1) Acho que não tem como fazer uma tabuada, sem usar pelo menos vetor...Quer ver? A variável cont, recebe apenas um valor, e como queres armazenar uma tabuada(supondo que vai de 1 até 10), precisará armazenar "10" valores em uma variável, ou seja, tem que ser em um vetor de 10 posições, para conseguir armazenar os valores...

2) "While" é um comando de condição, e "For" é um comando de laço de repetição..Ou seja nesse caso você utiliza um for para percorrer seu vetor em todas as posições e ler os valores armazenados, não haveria necessidade de utilizar o "while".

3) Não há necessidade de utilizar um contador nesse exemplo.

4) Tentei fazer o mais simples possível esse exemplo, espero que consiga entender.

Qualquer dúvida, poste ai!.

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


int main (){
    
    int num=0,i,v[10];
    
    //Recebe numero para fazer a tabuada
    printf("Digite um numero que deseja saber a tabuada:");
    scanf("%d",&num);
    
    //calcula tabuada do numero digitado
     for(i=1;i<11;i++){
          
      v[i] =  num * i; }
      printf("\n");
    
    
    
    //imprime resultado
    printf("TABUADA:\n");
    for(i=1;i<11;i++){
    printf("%d\n",v[i]);} 
   
    
    //encerra programa
    printf("\n");
    system("pause");   
    
}//main

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

  • 0

Usando o while daria para simplificar ainda mais isso...

#include <stdio.h>

int main (){
    int num, i = 0;

    printf("Digite um numero: ");
    scanf("%d", &num);

    printf("\nTABUADA: \n");
    while(i++ < 10)
        printf("%d x %d: %d\n", num, i, num*i);

    return(0);
}

Acredito que o 'while()' se encaixe mais como um comando de repetição, pois o mesmo executa um bloco de comandos até uma condição ser atendida, exatamente como o 'for()'.

Não há a necessidade de armazenar os valores resultantes quando a única tarefa é exibir a tabuada. O 'printf()' suporta a exibição do resultado de uma expressão sem qualquer problemas. Aliás, suporta até mesmo a exibição do retorno de uma função.

Para exibir uma tabuada maior, basta alterar o '10' do while() pelo número que desejar.

Link para o comentário
Compartilhar em outros sites

  • 0

Realmente tinha uma maneira mais simples de fazer, porém na minha lógíca usei vetores, mas é possível fazer com "printf" e "while".

Segue abaixo, um outro algoritimo para imprimir a tabuada de "1 até 10" automaticamente.Mais uma forma de conhecimento.

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

int main(void)
{
   int t, i, oper;
   printf("\tTabuada\n\n\n");
   for (t=1;t<=10; ++t) {
      for (i=1;i<=5;++i)
      printf("%3d*%2d= %3d |", i, t,i*t);
      printf("\n");
   }
   printf("  --------------------------------------------------------------\n");
   for (t=1;t<=10; ++t) {
      int i;
      for (i=6;i<=10;++i)
      printf("%3d*%2d= %3d |", i, t,i*t);
      printf("\n");
      }
   printf("\n");
   
   system("pause");
}

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

  • 0

Pelo que entendi q você quer fazer, o ususario entra com o numero da tabuada, usado while e sem vetores, pode fazer assim:

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

int main (void){
   int n, i = 0, resultado;
   printf ("Entre com o numero que deseja a tabuada: ");
   scanf ("%d", &n);
   while (i <= 10){
         resultado = i * n;
         printf ("%d x %d = %d\n", n, i, resultado);
         ++i;
   }
   system ("pause");
   return (0);
}

É claro que você pode fazer uma funcao pra isso, passando como argumento a variavel n.

Link para o comentário
Compartilhar em outros sites

  • 0

Que tal este código bem simples:

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

int main()
{
    //variavel de controle do while
    int i = 1;
    //O valor significa a tabuada de qual numero voce deseja imprimir//
    int valor = 3;

    while (i <=10)
    {
        printf("\n%d * %d = %d", valor, i, valor*i);
        i++;
    }

    return 0;
}

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

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...