Jump to content
Fórum Script Brasil
  • 0

Ajuda While


Talis TF

Question

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 to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 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");     
    
}

Edited by Prog_Junior
Link to comment
Share on other 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

Edited by Prog_Junior
Link to comment
Share on other 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 to comment
Share on other 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");
}

Edited by Prog_Junior
Link to comment
Share on other 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 to comment
Share on other 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;
}

Edited by Ruyfreis
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...