variavel. Este numero esta diretamente relacionado com a string de controle str,que deve ser fornecida como primeiro argumento. A string de controle tem dois componentes.O primeiro sao caracteres a serem impressos na tela. O segundo sao os comandos de formato.Como ja vimos, os ultimos determinam uma exibicao de variaveis na saida. Os comandos deformato sao precedidos de %. A cada comando de formato deve corresponder um argumentona funcao printf(). Se isto nao ocorrer podem acontecer erros imprevisiveis no programa.Abaixo apresentamos a tabela de codigos de formato:Codigo Formato%c Um caracter (char)%d Um numero inteiro decimal (int)%i O mesmo que %d%e Numero em notacao cientifica com o "e"minusculo%E Numero em notacao cientifica com o "e"maiusculo%f Ponto flutuante decimal%g Escolhe automaticamente o melhor entre %f e %e%G Escolhe automaticamente o melhor entre %f e %E%o Numero octal%s String73%u Decimal "unsigned" (sem sinal)%x Hexadecimal com letras minusculas%X Hexadecimal com letras maiusculas%% Imprime um %%p PonteiroVamos ver alguns exemplos:Codigo Imprimeprintf ("Um %%%c %s",c,"char"); Um %c charprintf ("%X %f %e",107,49.67,49.67); 6B 49.67 4.967e1printf ("%d %o",10,10); 10 12E possivel tambem indicar o tamanho do campo, justificacao e o numero de casasdecimais. Para isto usa-se codigos colocados entre o % e a letra que indica o tipo de formato.Um inteiro indica o tamanho minimo, em caracteres, que deve ser reservado para asaida. Se colocarmos entao %5d estamos indicando que o campo tera cinco caracteres decomprimento no minimo. Se o inteiro precisar de mais de cinco caracteres para ser exibidoentao o campo tera o comprimento necessario para exibi-lo. Se o comprimento do inteiro formenor que cinco entao o campo tera cinco de comprimento e sera preenchido com espacos embranco. Se se quiser um preenchimento com zeros pode-se colocar um zero antes do numero.Temos entao que %05d reservara cinco casas para o numero e se este for menor entao sefara o preenchimento com zeros.O alinhamento padrao e a direita. Para se alinhar um numero a esquerda usa-se um sinal- antes do numero de casas. Entao %-5d sera o nosso inteiro com o numero minimo de cincocasas, so que justificado a esquerda.Pode-se indicar o numero de casas decimais de um numero de ponto flutuante. Porexemplo, a notacao %10.4f indica um ponto flutuante de comprimento total dez e com 4casas decimais. Entretanto, esta mesma notacao, quando aplicada a tipos como inteiros estrings indica o numero minimo e maximo de casas. Entao %5.8d e um inteiro comcomprimento minimo de cinco e maximo de oito.Vamos ver alguns exemplos:Codigo Imprimeprintf ("%-5.2f",456.671); | 456.67|printf ("%5.2f",2.671); | 2.67|printf ("%-10s","Ola"); |Ola |Nos exemplos o "pipe" ( | ) indica o inicio e o fim do campo mas nao sao escritos na tela.scanfPrototipo:int scanf (char *str,...);A string de controle str determina, assim como com a funcao printf(), quantosparametros a funcao vai necessitar. Devemos sempre nos lembrar que a funcao scanf() devereceber ponteiros como parametros. Isto significa que as variaveis que nao sejam por naturezaponteiros devem ser passadas precedidas do operador &. Os especificadores de formato de74entrada sao muito parecidos com os de printf(). Os caracteres de conversao d, i, u e x podemser precedidos por h para indicarem que um apontador