Bem-vindo: Qui, 28 de Março 2024, 11:50 Pesquisa avançada

Tabela em C

Escreveu alguma aplicação ou script que quer partilhar? Ou conhece algo que quer partilhar? Sabe alguma linguagem de programação e quer partilhar esse conhecimento com um tutorial? Tem alguma dúvida em alguma linguagem? Então este é o sítio certo.

Tabela em C

Mensagempor Rhyu » Sáb, 15 de Dezembro 2012, 14:37

Bom dia,

galera estou com um problema em C para resolver e não estou conseguindo.

Escreva um programa que imprima uma tabela de números ímpares com m
linhas e n colunas (m e n são lidos do teclado).


Código: Selecionar todos
#include <stdio.h>

int main ()

{
   
int m; //linhas
int n; //colunas
int a;
int b;
scanf ("%d%d",&m,&n);
 
 for (b = 1 ; b <= n ; b++)
 {
    printf ("%d ",b);

 }
 

}


Não sei como faço pra pular a linha e tal no for e nem como coloco pra imprimir só os impares.

Rhyu
 
Mensagens: 62
Registrado em: 23 Novembro, 2012

Re: Tabela em C

Mensagempor Claudio Novais » Sáb, 15 de Dezembro 2012, 15:27

Não testei mas coisa deve ser algo deste género:

Código: Selecionar todos
#include <stdio.h>

int main ()

{
   int m; //linhas
   int n; //colunas
   int a;
   int b;
   scanf ("%d%d",&m,&n);

   for (a = 0 ; a < m ; a++)
   {
      for (b = 0 ; b < n ; b++)
      {
         if(i%2 == 0) //se for par
            printf ("| ");
         else
            printf ("|%d",b+(a*m));
      }
      printf ("|\n");
   }
}


Não testei e há que não programo em C, portanto é possível que haja coisas que não funcionem, mas o conceito será algo assim.
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Re: Tabela em C

Mensagempor Rhyu » Sáb, 15 de Dezembro 2012, 15:32

É essa idéia mas só que seu programa imprimi uma l coluna a mais e ta imprimindo riscos ao invés de números.

Rhyu
 
Mensagens: 62
Registrado em: 23 Novembro, 2012

Re: Tabela em C

Mensagempor Claudio Novais » Sáb, 15 de Dezembro 2012, 15:42

Os riscos são as barras que eu pus para identificar as colunas. Não quer, apague-as! ;)

Sobre os números, veja melhor esse printf e o %D, já não me lembro ao certo como funciona o C, mas tinha ideia que era assim.


---
Fui agora testar e esqueci-me de calcular o valor. Assim funciona:
Código: Selecionar todos
    #include <stdio.h>

    int main ()

    {
       int m; //linhas
       int n; //colunas
       int a;
       int b;
       int i;
       scanf ("%d%d",&m,&n);

       for (a = 0 ; a < m ; a++)
       {
          for (b = 0 ; b < n ; b++)
          {
             i=b+(a*m);
             if(i%2 == 0) //se for par
                printf ("| ");
             else
                printf ("|%d",i);
          }
          printf ("|\n");
       }
    }
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Re: Tabela em C

Mensagempor Rhyu » Sáb, 15 de Dezembro 2012, 15:47

É que o problema é assim, ele tem que imprimir somente numeros impares ou seja se a tabela é 3x4

01 03 05 07
01 03 05 07
01 03 05 07

Ela tem que imprimir números impares em todas as linhas e colunas não importal qual impar seja.

Rhyu
 
Mensagens: 62
Registrado em: 23 Novembro, 2012

Re: Tabela em C

Mensagempor Claudio Novais » Sáb, 15 de Dezembro 2012, 15:52

Ah, pensei que era isto que você queria:
Código: Selecionar todos
claudio@claudio-N61Jv:~$ gcc c.c -o a ; ./a
5 5
________________
|  | 1|  | 3|  |
| 5|  | 7|  | 9|
|  |11|  |13|  |
|15|  |17|  |19|
|  |21|  |23|  |
________________


que foi com este código:
Código: Selecionar todos
    #include <stdio.h>

    void imprimelinha( int casasDecimais, int m ){
       //imprime a linha superior, com base nas 2 casas decimais e as linhas das colunas
       int chars,a;
       chars = casasDecimais*m+1;
       for (a = 0 ; a < chars ; a++)
       {
            printf ("_");
       }
       printf ("\n");   
    }

    int main ()
    {
       int m; //linhas
       int n; //colunas
       int a;
       int b;
       int i;
       scanf ("%d%d",&m,&n);

       imprimelinha(3,m);
       
       for (a = 0 ; a < m ; a++)
       {
          for (b = 0 ; b < n ; b++)
          {
             i=b+(a*m);
             if(i%2 == 0) //se for par
                printf ("|  ");
             else
                printf ("|%2d",i);
          }
          printf ("|\n");
       }
       
       imprimelinha(3,m);
    }


Se quer isso, ainda é mais fácil:
Código: Selecionar todos
    #include <stdio.h>

    int main ()
    {
       int m; //linhas
       int n; //colunas
       int a;
       int b;
       int i;
       scanf ("%d%d",&m,&n);

       
       for (a = 0 ; a < m ; a++)
       {
          for (b = 0 ; b < n ; b++)
          {
             i=b;
             if(i%2 != 0) //se for impar
                printf ("|%02d",i);
          }
          printf ("|\n");
       }
       
    }


output:
Código: Selecionar todos
claudio@claudio-N61Jv:~$ gcc c.c -o a ; ./a

20
|01|03|05|07|09|11|13|15|17|19|
|01|03|05|07|09|11|13|15|17|19|
|01|03|05|07|09|11|13|15|17|19|
|01|03|05|07|09|11|13|15|17|19|
|01|03|05|07|09|11|13|15|17|19|
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Re: Tabela em C

Mensagempor Rhyu » Sáb, 15 de Dezembro 2012, 15:59

Então Cláudio o que tinha conseguido era parecido com esse seu último só que cai no mesmo problema. Se o numero de colunas é 20 então ele teria que imprimir 20 números impares, o que acontece é que ele apenas pula os pares, a saída correta no caso seria assim

01 03 05 07 09 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39
01 03 05 07 09 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39
01 03 05 07 09 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39
01 03 05 07 09 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39
01 03 05 07 09 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39

O problema que to tendo é esse se o numero de colunas é 10 por exemplo ele apenas imprimi os 5 impares, mas preciso que imprima 10 impares

para m = 3 e n = 4).
01 03 05 07
15 13 11 09
17 19 21 23

Rhyu
 
Mensagens: 62
Registrado em: 23 Novembro, 2012

Re: Tabela em C

Mensagempor Claudio Novais » Sáb, 15 de Dezembro 2012, 16:07

Código: Selecionar todos
claudio@claudio-N61Jv:~$ gcc c.c -o a ; ./a
3 20
01 03 05 07 09 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39
01 03 05 07 09 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39
01 03 05 07 09 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39


Código: Selecionar todos
    #include <stdio.h>

    int main ()
    {
       int m; //linhas
       int n; //colunas
       int a;
       int b;
       int i;
       scanf ("%d%d",&m,&n);

       
       for (a = 0 ; a < m ; a++)
       {
          i=b=0;
          while(i<n)
          {
             if(b%2 != 0){ //se for impar
                printf ("%02d ",b++);
                i++;
             }
             else
                b++;
          }
          printf ("\n");
       }
       
    }
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Re: Tabela em C

Mensagempor Rhyu » Sáb, 15 de Dezembro 2012, 16:08

Perfeito.

Rhyu
 
Mensagens: 62
Registrado em: 23 Novembro, 2012


Voltar para Scripts, programação e aplicações em desenvolvimento

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 68 visitantes

cron