Ir ao conteúdo
  • Cadastre-se
Filipe de Luca

C Problema multiplicação

Recommended Posts

Estou tendo problemas pra multiplicar. Aparece só 0.000

int num, horas;
   double valorh, sal;
   scanf("%d", &num);
   scanf("%d", &horas);
   scanf("%.2f", valorh);
   sal=valorh*horas;
   printf("NUMBER = %d\n", num);
   printf("SALARY = U$ %.2f\n", sal);

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Filipe de Luca   alguns errinhos básicos,  não se pode multiplicar float por int ,  e esse double é um problema  melhor usar float mesmo .   veja seu código com algumas modificações :

#include<stdio.h>
int main(){
    int num ;
   float horas, valorh, sal;
   scanf("%d", &num);
   scanf("%f", &horas);
   scanf("%f",&valorh);/*não pode colocar esse .2f aqui não, tem que colocar é no printf*/
   sal=valorh*horas;
   printf("NUMBER = %d\n", num);
   printf("SALARY = U$ %.2f\n", sal);
}

se usar double use também lf (LF  Long Float em letras minúsculas) nos scanf e nos printf 

Compartilhar este post


Link para o post
Compartilhar em outros sites
39 minutos atrás, devair1010 disse:

@Filipe de Luca   alguns errinhos básicos,  não se pode multiplicar float por int ,  e esse double é um problema  melhor usar float mesmo .   veja seu código com algumas modificações :


#include<stdio.h>
int main(){
    int num ;
   float horas, valorh, sal;
   scanf("%d", &num);
   scanf("%f", &horas);
   scanf("%f",&valorh);/*não pode colocar esse .2f aqui não, tem que colocar é no printf*/
   sal=valorh*horas;
   printf("NUMBER = %d\n", num);
   printf("SALARY = U$ %.2f\n", sal);
}

se usar double use também lf (LF  Long Float em letras minúsculas) nos scanf e nos printf 

valeu, mas é que é exercício do uri e pede pra colocar duas variáveis de tipo inteiro:

 

Escreva um programa que leia o número de um funcionário, seu número de horas trabalhadas, o valor que recebe por hora e calcula o salário desse funcionário. A seguir, mostre o número e o salário do funcionário, com duas casas decimais.

Entrada

O arquivo de entrada contém 2 números inteiros e 1 número com duas casas decimais, representando o número, quantidade de horas trabalhadas e o valor que o funcionário recebe por hora trabalhada, respectivamente.

Saída

Imprima o número e o salário do funcionário, conforme exemplo fornecido, com um espaço em branco antes e depois da igualdade. No caso do salário, também deve haver um espaço em branco após o $.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Filipe de Luca    nesse caso para você fazer multiplicação de int com double ou float  é preciso fazer a conversão

colocando esse comando (float) antes do número int .

veja como seu código ficaria  :

#include<stdio.h>
int main(){
    int num,horas;
   double valorh, sal;
   scanf("%d", &num);
   scanf("%d", &horas);
   scanf("%lf",&valorh);/*não pode colocar esse .2 aqui não, tem que colocar no printf*/
   printf("NUMBER = %d\n", num);
   sal=valorh*(float)horas;
   printf("SALARY = U$ %.2lf\n", sal);
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 Esse deu certo, valeu. Agora esse não sei o que ta errado:

 

A fórmula para calcular a área de uma circunferência é: area = π . raio2. Considerando para este problema queπ = 3.14159:

- Efetue o cálculo da área, elevando o valor de Raio ao quadrado e multiplicando por π.

Entrada

A entrada contém um valor de ponto flutuante (dupla precisão), no caso, a variável raio.

Saída

Apresentar a mensagem "A=" seguido pelo valor da variável area, conforme exemplo abaixo, com 4 casas após o ponto decimal. Utilize variáveis de dupla precisão (double). Como todos os problemas, não esqueça de imprimir o fim de linha após o resultado, caso contrário, você receberá "Presentation Error".

    double raio, area;
    scanf("%lf", &raio);
    area=raio*raio*3.14159;
    printf("A = %.4lf\n", area);

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você usar o PI com mais casas decimais, os cálculos serão mais precisos, eu costumo usar const double PI = 3.14159265358979323846. porém como o enunciado do exercício já especifica um valor para PI pode ser que o professor crie caso. hehe

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 30/05/2017 às 21:34, Filipe de Luca disse:

@devair1010 Esse deu certo, valeu. Agora esse não sei o que ta errado:

 

A fórmula para calcular a área de uma circunferência é: area = π . raio2. Considerando para este problema queπ = 3.14159:

- Efetue o cálculo da área, elevando o valor de Raio ao quadrado e multiplicando por π.

Entrada

A entrada contém um valor de ponto flutuante (dupla precisão), no caso, a variável raio.

Saída

Apresentar a mensagem "A=" seguido pelo valor da variável area, conforme exemplo abaixo, com 4 casas após o ponto decimal. Utilize variáveis de dupla precisão (double). Como todos os problemas, não esqueça de imprimir o fim de linha após o resultado, caso contrário, você receberá "Presentation Error".

 

 

double raio, area;
    scanf("%lf", &raio);
    area=raio*raio*3.14159;
    printf("A = %.4lf\n", area);

 

É um problema da plataforma em questão, no caso do enunciado pede-se que imprima "A=" sem espaço, basta trocar o printf por printf("A=%.4lf\n", area);

que sera aceito

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

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

×