realizei uma verificação do tamanho da variável int, aprendido na aula anterior, e constatei que o tamanho retornado pelo sistema é 4 e não dois como descreve um trecho do texto.
"Você sabe que um inteiro ocupa 2 bytes na memória"
Estou confuso e sinceramente não tenho plena certeza se estou falando a coisa correta. Poderia explicar melhor essa parte para nós?
15 de janeiro de 2015 às 09:01
Nélson disse...
Jean Ricardo, eu li em algum lugar que o tamanho que a variável ocupa na memória do PC depende de computador pra computador. Se estiver errado, me corrijam.
Quero calcular uma % de um valor de uma conta de restaurante , e esse % é 30, é o equivalente a gorjeta do garçom como eu faço isso ? Consegui emitir para que o usuario escrava o valor , mais como calcular que eu não sei qual variavel usar e como usar :SS Obrigado galera
Jean Ricardo sua dúvida a respeito do espaço ocupado pelo int link: http://www.cprogressivo.net/2013/01/Modificadores-do-tipo-inteiro-int-em-C--short-long-signed-unsigned.html abaixo do tópico O tamanho que cada variável em C pode ocupar em memória
Vimos que uma variável do tipo int (inteira) em C, geralmente ocupa 2 ou 4 bytes na memória de seu computador. então seu computador está dentro do esperado, talvez seja mais comum os que ocupam 4, só isso.
Olá. Estou começando a programar em C. Tentei criar um programa pra calcular a area de um circulo usando variavel do tipo double e quando tentei "chama-la" no programa, usando o código de conversão %f, não funcionou. Uso a IDE DEV C++ ela compilou, não mostrou erro mas quando rodei o executável e joguei um valor pro raio, o problema surgiu. Eis o código que usei pra fazer a bagaça funcionar (perceba que no lugar do %f usei o %lf, indicação de um colega). Gostaria de entender o porque disso, já que em todos os lugares que li sobre codigos de conversão, dizia que para o tipo float e double usa-se o mesmo código que é %f.
#include #include
main ()
{ double area, raio, PI = 3.14159;
scanf("%lf",&raio); //printf("Raio = %f",raio);
area = pow(raio,2)*PI;
printf("A=%.4lf\n",area);
system ("pause"); return 0; }
19 de julho de 2015 às 19:50
Leandro Rodrigues disse...
Boa noite!
Como faço para o programa ler 5 números e calcular a média deles, utilizando apenas 3 variáveis, sem utilizar o comando de repetição.
Eu vejo nos exemplos em C, que exibem o valor do float assim, %6.2f, assim o 2 exibira 2 casas decimais depois do ponto e o 6 ele só deixa um espaço em branco no console, é isso mesmo? e pq?
int main() { float salarioSonho =1E6, salarioReal =10E-3; printf( "sonhei que meu salario era de R$%.2 , \n mais ele e de R$%.2f centavos ",salarioSonho,salarioReal);
}
18 de abril de 2016 às 14:08
Anônimo disse...
E se eu quiser inserir um valor de ponto flutuante.....%fl??? assim?
21 de abril de 2016 às 07:06
Anônimo disse...
Alguém sabe fazer rodar um programa para rodar o Pi ? quais são as variáveis, etc.... Por favor.
23 de novembro de 2016 às 07:51
Anônimo disse...
Se quiser inserir um valor de ponto flutuante coloque %f
Se eu tenho varios numeros reais e quero deixar todos eles com 4 casas decimais após a virgula, como faço? a cada iteraçao sao gerados muitos numeros! tenho que fazer cout para cada um deles? isso retardaria muito a execucao do codigo.
20 de abril de 2017 às 04:32
Lucas disse...
Pq quando eu coloco:
#include
int main() { float pi= 3.14;
printf("pi = %f", pi);
}
O resultado do pi fica "3.40000" (?) É alguma má configuração do CodeBlocks? Fiz alguma coisa mal no código?
Para deixar com 4 casas é só colocar o numero 4 depois do ponto por exemplo: %.4f
3 de outubro de 2017 às 00:15
Willian Xavier disse...
#include #include
int main() { int parcelas, taxa; float valor_parcelas, valor_t, valor_emp; printf("Valor do emprestimo: R$ "); scanf(" %.2f", &valor_emp); fflush(stdin); printf("A taxa de juros sera: "); scanf(" %d", &taxa); fflush(stdin); printf("Numero de parcelas para pagamento: "); scanf(" %d",&parcelas); valor_t = (valor_emp + (valor_emp*taxa)/100); printf("O valor do emprestimo sera: R$ %.2f\n", &valor_t); valor_parcelas = (valor_t / parcelas); printf("O Valor das parcelas sera: R$ %.2f\n" ,&valor_parcelas); }
Boa noite, montei esse exercício para calcular o valor de emprestimo, consigo incluir o valor a taxa de juros e o numero de parcelas, porém o sistema não me retorna o valor do empréstimo e nem o valor das parcelas. Como posso resolver este problema.
No artigo passado de nosso curso de C, estudamos sobre o tipo inteiro (int), como declarar, imprimir e inicializar tal tipo de dado.
Agora faremos o mesmo, mas para os números decimais, também conhecidos como números reais, que são os tipos float e double.
Baixe nossa Apostila de C
[Image]Obter certificado do curso C Progressivo
O que são e para que servem os tipos float e double
Em nossos exemplos, usamos tanto float como double para representar números reais.
Temos, então, duas opções iguais para representar esses números decimais? Na verdade não, há uma diferença.
Variáveis float exigem, geralmente, 4 bytes de memória para serem armazenadas enquanto double necessitam de 8 bytes.
Essa diferença serve para termos uma melhor precisão na hora de realizar cálculos.
O número PI, por exemplo, é irracional. Ou seja, ela possui uma quantidade INFINITA de casas decimais.
Obviamente, uma cálculo com o uso do pi nunca é totalmente preciso. Além do mais, computadores tem uma quantidade de memória limitada.
Então, nos seus trabalhos escolares você deve declarar e usar uma variável do tipo float para representar o número pi:
float pi = 3.14;
Se quiser ser mais preciso pode fazer até: pi = 3.1415;
Já um Engenheiro Civil ou um Físico da NASA terá que usar uma precisão maior, pois quanto mais casas decimais, mais correto
será seu resultado. Então, eles usariam:
double pi = 3,14159265358979323
Ok, agora você sabe a diferença entre um float e um double - apenas a precisão.
Mas qual a diferença entre 0 e 0.0? E a diferença de 1 e 1.00?
Você sabe que um inteiro ocupa 2 bytes na memória, e que um float ocupa 4 bytes.
Além do tamanho alocado em sua máquina, qual outra diferença que faz esses valores diferentes?
Sim, o ponto. Ou seja, a parte decimal.
Fazer: int erro = 0
É totalmente diferente de: float erro = 0.0;
Uma vez declarado um inteiro, não poderá usar decimais nele. Mesmo sabendo que 0 = 0.0
Já os decimais podem ser trabalhados com inteiros.
Por exemplo:
double erro = 0.00
int juros = 1
Podemos fazer: juros + erro = 1.00
Ou seja, quando fazemos uma operação matemática de um decimal com inteiro, obteremos sempre um decimal.
Assim, o resultado dessa operação deverá sempre ser armazenado em um float ou em um double.
Veremos mais sobre isso quando estudarmos operações matemáticas na linguagem C.
Imprimindo números reais float e double na tela através do printf
Vimos na aula passada que representamos inteiros como %d dentro das aspas, de um printf.
Para variáveis decimais ou reais, como o float e o double usamos: %f
Vejamos um exemplo que mostra um valor de pi com precisão simples (float) e outro com precisão dupla(double):
#include <stdio.h>
int main()
{
float pi = 3.14;
double piDouble = 3.1415926535897932384626433832795;
printf("Valor de pi %f\n", pi );
printf("Valor de pi mais preciso %f\n", piDouble );
}
Aqui notamos uma coisa curiosa no segundo valor, é exibido: 3.141593
Ou seja, o C não mostrou todo o valor da variável double 'piDouble' e ainda arredondou!
Podemos resolver isso da seguinte maneira. Supondo que você queira que seja exibido 6 casas decimais:
Ao invés de usar '%f' coloque: '%.7f'
Ou seja, esse 0.7f diz ao C o seguinte "Após o ponto, exiba 7 casas decimais".
Teste e veja o resultado:
#include <stdio.h>
int main()
{
float pi = 3.14;
double piDouble = 3.1415926535897932384626433832795;
printf("Valor de pi %f\n", pi );
printf("Valor de pi mais preciso %.7f\n", piDouble );
}
Será exibido: 3.1415927
Agora veja o seguinte: a variável 'pi' tem somente duas casas decimais depois do ponto.
O que ocorre se eu ordenar ao printf que imprima com 5 casas decimais?
Programe e veja você o que acontece:
#include <stdio.h>
int main()
{
float pi = 3.14;
double piDouble = 3.1415926535897932384626433832795;
printf("Valor de pi %.5f\n", pi );
printf("Valor de pi mais preciso %.7f\n", piDouble );
}
Como imprimir números na forma exponencial em C
Outra maneira de imprimir variáveis decimais é usando exponenciais.
Podemos inicializar uma variável da seguinte maneira:
float numero = xEy;
Isso significa: x vezes 10 elevado a y = x * 10^y
Ou seja, 1E6 = 1 vezes 10^6 = 1 milhão
E float numero = xE-y
Significa: x vezes 10 elevado a -y = x * 10^(-y)
Por exemplo: 2E-3 = 2 vezes 10^(-3) = 0.002
Veja o seguinte código e tente adivinhar sua saída. Logo após, rode o programa para vê se acertou:
#include <stdio.h>
int main()
{
float salarioSonho = 1E6,
salarioReal = 10E-3;
printf("Sonhei que meu salario era de R$%.2f, \nmas acordei e lembrei que era %.2f centavos", salarioSonho, salarioReal);
}
Nesse último exemplo, note como declaramos mais de uma varíável.
Em vez de fazer:
float variavel1;
float variavel2;
float variavel3.
Você pode fazer:
float variavel1, variavel2, variavel3;
Ou, para ficar mais legível:
float variavel1,
variavel2,
variavel3.
postado por Programação Progressiva às 01:09 em 5 de dez. de 2012
22 Comentários
Fechar esta janela Ir para formulário de comentárioOlá,
estou conhecendo o site hoje e gostaria de "curtir" no Facebook. Mas não encontrei a página. Tem um link?
abraços e obrigado pelo curso.
1 de março de 2014 às 07:53
escrevi no string %.35f e apareceram os 35 números só porque a partir da 20° casa decimal os número começaram a aparecer diferente.
16 de julho de 2014 às 07:33
Ótima tarde a todos,
realizei uma verificação do tamanho da variável int, aprendido na aula anterior, e constatei que o tamanho retornado pelo sistema é 4 e não dois como descreve um trecho do texto.
"Você sabe que um inteiro ocupa 2 bytes na memória"
Estou confuso e sinceramente não tenho plena certeza se estou falando a coisa correta. Poderia explicar melhor essa parte para nós?
15 de janeiro de 2015 às 09:01
Jean Ricardo, eu li em algum lugar que o tamanho que a variável ocupa na memória do PC depende de computador pra computador. Se estiver errado, me corrijam.
18 de fevereiro de 2015 às 14:50
Oi qmassa esse tutorial
3 de março de 2015 às 05:02
Quero calcular uma % de um valor de uma conta de restaurante , e esse % é 30, é o equivalente a gorjeta do garçom como eu faço isso ?
Consegui emitir para que o usuario escrava o valor , mais como calcular que eu não sei qual variavel usar e como usar :SS
Obrigado galera
2 de julho de 2015 às 11:10
Jean Ricardo sua dúvida a respeito do espaço ocupado pelo int
link: http://www.cprogressivo.net/2013/01/Modificadores-do-tipo-inteiro-int-em-C--short-long-signed-unsigned.html
abaixo do tópico
O tamanho que cada variável em C pode ocupar em memória
Vimos que uma variável do tipo int (inteira) em C, geralmente ocupa 2 ou 4 bytes na memória de seu computador.
então seu computador está dentro do esperado, talvez seja mais comum os que ocupam 4, só isso.
19 de julho de 2015 às 08:55
Olá. Estou começando a programar em C. Tentei criar um programa pra calcular a area de um circulo usando variavel do tipo double e quando tentei "chama-la" no programa, usando o código de conversão %f, não funcionou. Uso a IDE DEV C++ ela compilou, não mostrou erro mas quando rodei o executável e joguei um valor pro raio, o problema surgiu.
Eis o código que usei pra fazer a bagaça funcionar (perceba que no lugar do %f usei o %lf, indicação de um colega). Gostaria de entender o porque disso, já que em todos os lugares que li sobre codigos de conversão, dizia que para o tipo float e double usa-se o mesmo código que é %f.
#include
#include
main ()
{
double area, raio, PI = 3.14159;
scanf("%lf",&raio);
//printf("Raio = %f",raio);
area = pow(raio,2)*PI;
printf("A=%.4lf\n",area);
system ("pause");
return 0;
}
19 de julho de 2015 às 19:50
Boa noite!
Como faço para o programa ler 5 números e calcular a média deles, utilizando apenas 3 variáveis, sem utilizar o comando de repetição.
13 de setembro de 2015 às 16:08
Interio varia entre dois e 4
23 de setembro de 2015 às 20:01
Eu vejo nos exemplos em C, que exibem o valor do float assim, %6.2f, assim o 2 exibira 2 casas decimais depois do ponto e o 6 ele só deixa um espaço em branco no console, é isso mesmo? e pq?
22 de fevereiro de 2016 às 19:28
#include
int main()
{
float salarioSonho =1E6,
salarioReal =10E-3;
printf( "sonhei que meu salario era de R$%.2 , \n mais ele e de R$%.2f centavos ",salarioSonho,salarioReal);
}
18 de abril de 2016 às 14:08
E se eu quiser inserir um valor de ponto flutuante.....%fl??? assim?
21 de abril de 2016 às 07:06
Alguém sabe fazer rodar um programa para rodar o Pi ? quais são as variáveis, etc.... Por favor.
23 de novembro de 2016 às 07:51
Se quiser inserir um valor de ponto flutuante coloque %f
12 de dezembro de 2016 às 17:02
if (seuPC> GBram4)
printf("Então int = 4bits")
else
printf("Então int=2bits")
}
23 de março de 2017 às 13:01
Se eu tenho varios numeros reais e quero deixar todos eles com 4 casas decimais após a virgula, como faço? a cada iteraçao sao gerados muitos numeros! tenho que fazer cout para cada um deles? isso retardaria muito a execucao do codigo.
20 de abril de 2017 às 04:32
Pq quando eu coloco:
#include
int main()
{
float pi= 3.14;
printf("pi = %f", pi);
}
O resultado do pi fica "3.40000" (?)
É alguma má configuração do CodeBlocks?
Fiz alguma coisa mal no código?
10 de setembro de 2017 às 04:18
Para deixar com 4 casas é só colocar o numero 4 depois do ponto por exemplo: %.4f
3 de outubro de 2017 às 00:15
#include
#include
int main()
{
int parcelas, taxa;
float valor_parcelas, valor_t, valor_emp;
printf("Valor do emprestimo: R$ ");
scanf(" %.2f", &valor_emp);
fflush(stdin);
printf("A taxa de juros sera: ");
scanf(" %d", &taxa);
fflush(stdin);
printf("Numero de parcelas para pagamento: ");
scanf(" %d",&parcelas);
valor_t = (valor_emp + (valor_emp*taxa)/100);
printf("O valor do emprestimo sera: R$ %.2f\n", &valor_t);
valor_parcelas = (valor_t / parcelas);
printf("O Valor das parcelas sera: R$ %.2f\n" ,&valor_parcelas);
}
Boa noite, montei esse exercício para calcular o valor de emprestimo, consigo incluir o valor a taxa de juros e o numero de parcelas, porém o sistema não me retorna o valor do empréstimo e nem o valor das parcelas. Como posso resolver este problema.
25 de janeiro de 2018 às 17:24
Boa noite, amigo vc tem que remover o & dos 2 últimos printf, o do valor_t e do valor_parcelas.
👍👍👍
16 de agosto de 2018 às 19:41
Nice
5 de dezembro de 2022 às 14:21