Talis TF Posted January 10, 2012 Report Share Posted January 10, 2012 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 Quote Link to comment Share on other sites More sharing options...
0 Binder Posted January 11, 2012 Report Share Posted January 11, 2012 (edited) 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 January 11, 2012 by Prog_Junior Quote Link to comment Share on other sites More sharing options...
0 Talis TF Posted January 11, 2012 Author Report Share Posted January 11, 2012 Não entendi;Por acaso da pra fazer em while? Quote Link to comment Share on other sites More sharing options...
0 Binder Posted January 11, 2012 Report Share Posted January 11, 2012 De qual parte você não entendeu do código? Me explique melhor a sua lógica de que pretende fazer, de que maneira quer usar o while... Quote Link to comment Share on other sites More sharing options...
0 Talis TF Posted January 11, 2012 Author Report Share Posted January 11, 2012 Até sei utilizar o for, mas não sei vetor...Mas gostaria de criar esta tabuada usando While...Isso que me atrapalhou um pouco na hora de ler o codigo. Quote Link to comment Share on other sites More sharing options...
0 Binder Posted January 11, 2012 Report Share Posted January 11, 2012 (edited) 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 January 11, 2012 by Prog_Junior Quote Link to comment Share on other sites More sharing options...
0 mJi Posted January 11, 2012 Report Share Posted January 11, 2012 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. Quote Link to comment Share on other sites More sharing options...
0 Binder Posted January 11, 2012 Report Share Posted January 11, 2012 (edited) 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 January 11, 2012 by Prog_Junior Quote Link to comment Share on other sites More sharing options...
0 PHR22 Posted January 13, 2012 Report Share Posted January 13, 2012 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. Quote Link to comment Share on other sites More sharing options...
0 Ruyfreis Posted January 19, 2012 Report Share Posted January 19, 2012 (edited) 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 January 19, 2012 by Ruyfreis Quote Link to comment Share on other sites More sharing options...
Question
Talis TF
Estou tentando criar um While para imprimir a tabuada de um determinado numero;
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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.