Ir ao conteúdo

Posts recomendados

Postado

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
  • Membro VIP
Postado

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.)

  • Amei 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!