Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
MatheusINF

C Funcionamento da Matriz em C

Recommended Posts

Fala galera meu professor passou uma matriz em sala ai fui fazer em casa porém percebi que ele colocou um "%5d", Eu queria saber pra que isso serve, pois sei para float é pra definir as casas após a virgula, porém pra inteiro não entendi o motivo.

printf ("Digite a Matriz A:\n");
for(Linha=0; Linha<3; Linha++)
{
for(Coluna=0; Coluna<3; Coluna++)
scanf("%d", &MatrizB[Linha][Coluna]);
}
for (Linha=0; Linha<3; Linha++)
{
for(Coluna=0; Coluna<3; Coluna++)
printf ("%5d", MatrizB[Linha] [Coluna]);
printf("\n\n");
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

Sobre:

1 hora atrás, MatheusINF disse:

"%5d", Eu queria saber pra que isso serve

 

Vamos por parte!

 

Vide uma referência do comando scanf().

http://www.cplusplus.com/reference/cstdio/scanf/

 

Lá tem:

A format specifier for scanf follows this prototype:
%[*][width][length]specifier

obs.: Dei um crtl+f para achar os %. E o texto tem tudo a ver... :)

 

Ou seja, ou é a largura (width) ou o tamanho (length). Certo. Lá na referência também explica o que é cada um... Então, mesmo sem ler o que cada um significa, já deduzimos que é um dos 2 (* sabemos que é algo relacionado a ponteiro, e que 5 não é um "*"). Qual faz mais sentido para um int? o que parece mais coerente com o contexto seria tamanho.

 

Fiz um código para testar, veja:

#include <stdio.h>
int main() {
    int num=0;
    scanf("%5d",&num);
    printf("%d",num);
    return 0;
}

Inserir 888888, mas imprimiu 88888, ou seja 5 dígitos, logo de fato é o tamanho (ou seria largura? rs. Em fim... seria a quantidade de dígitos).

 

Ponto, para o scanf(), servirá para ler até 5 "dígitos". (entre -9999 e 99999)

 

 

 

 

Já em relação ao printif() idem... verificamos a referência:

http://www.cplusplus.com/reference/cstdio/printf/

 

Lá tem:

A format specifier follows this prototype: [see compatibility note below]
%[flags][width][.precision][length]specifier

Ou seja, ou é uma bandeira (flags) , ou a largura (width) ou o tamanho (length). Certo?. Lá na referência também explica o que é cada um... Então, mesmo sem ler o que cada um significa, já deduzimos que é um dos 3... qual faz mais sentido para um int? o que parece mais coerente com o contexto seria tamanho, rs. Mas vamos testar:

 

#include <stdio.h>
int main() {
    int num=0;
    scanf("%d",&num);
    printf("%5d",num);
    return 0;
}

Inserir 88888888 e saiu o mesmo 88888888.

 

Ponto, para o printf(), eu não faço a menor ideia!!! kkkkkkkkk

 

 

Fico no aguardo da resposta também.

adicionado 4 minutos depois

UPDATE

 

Descobri! Serve para "reservar a esquerda", ou seja, "também é o tamanho"....

Se inserir:

66

Vai imprimir

---66   //obs.: usei - para representar os espaços!!

 

Ponto, para o printf(), vai reservar 5 espaços para o número (ficando o número alinhado a direita.)

  • Curtir 1
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×