Ir ao conteúdo

Posts recomendados

Postado

boa noite!!

após desenvolver a questão, cheguei a essa conclusão. gostaria de auxílio para verificar se o desenvolvimento esta correto.

questão:

 Desenvolva a função saoPositivos que recebe como parâmetros dois números reais, informados pelo usuário e verifica se ambos são maiores que zero. A função deve retornar 1 (verdadeiro) se ambos forem positivos e 0 (falso) caso contrário.

#include <stdio.h>

int main()
{
    float nmr;
    scanf( "%f", nmr);
    if(nmr < 0);{
    printf("%.2f eh um numero negativo . \n",nmr);
}
    
else
{
printf("%.2f eh um numero positivo  .",nmr);

}
    return 0;
}

 

Postado
53 minutos atrás, Caio Fagundes21 disse:

cheguei a essa conclusão. gostaria de auxílio para verificar se o desenvolvimento esta correto.

questão:

 Desenvolva a função saoPositivos que recebe como parâmetros dois números reais, informados pelo usuário e verifica se ambos são maiores que zero. A função deve retornar 1 (verdadeiro) se ambos forem positivos e 0 (falso) caso contrário.

 

? Não tem nenhuma função aí... Onde está saoPositivos()?

Postado

A questão pede que sejam informado dois números e você deve utilizar uma função:

#include <stdio.h>

int saopositivos(flaot n1, n2)
{
  //escreva o codigo para verificar se ambos sao maiores que zero aqui
  //caso positivo: return 1;
  //caso negativo:return 0;
}
int main()
{
    float n1, n2;
    scanf( "%f %f", &n1, &n2);
    if (saopositivos(n1, n2) == 1) printf("ambos sao positivos\n");
    else printf("um dos numeros eh negativo");
}

 

Postado
27 minutos atrás, Flávio Pedroza disse:

A questão pede que sejam informado dois números e você deve utilizar uma função:

#include <stdio.h>

int saopositivos(flaot n1, n2)
{
  //escreva o codigo para verificar se ambos sao maiores que zero aqui
  //caso positivo: return 1;
  //caso negativo:return 0;
}
int main()
{
    float n1, n2;
    scanf( "%f %f", &n1, &n2);
    if (saopositivos(n1, n2) == 1) printf("ambos sao positivos\n");
    else printf("um dos numeros eh negativo");
}

 

algo como:

  if( n1,n2 >= 0){
  printf("ambos os valores sao positivos")
  }
  else 
  {
      if(n1, n2 <=0)
      printf(ao menos um dos valores eh negativo ou eh igual a zero.")
  }
}

Postado

:) 
 

 Algo como uma função, cujo nome já está decidido: saoPositivos é o nome, está no enunciado.

 

A tal função recebe parâmetros? Sim. Está no enunciado.

 

Quantos? Dois. Está no enunciado.

 

De que tipo? números reais, está no enunciado: float ou double, os reais em C

 

Por valor ou referência? Tanto faz. Mas está claro que sequer vai alterar os valores, apenas testar se são maiores que zero. Não há razão para passar ponteiros. E pode ser const, já que claramente não vai mudar o valor.

 

E tal função vai retornar o que? zero ou 1. Está no enunciado.

 

Isso é o que? pode ser um char, um int, um short, um long, qualquer coisa desde que possa retornar zero ou um.

 

Exemplo
 

    char    saoPositivos( const double um, const double outro)
    {
        return ( (um>0) && (outro >0) );
    };

 

Em C uma expressão vale 0 se for falso e na avaliação vai valer 1 se verdadeira. && é o operador AND, o popular E

 

Como usa algo assim?

 

Já escreveu algum outro programa em C?

 

Algo assim serviria
 

#include <stdio.h>

char        saoPositivos(const double,const double);

int  main(void)
{
    double a = 2.2;
    double b = 3.3;
    printf( "a = %f, b = %f, saoPositivos(a,b) retornou %d\n",
           a, b, saoPositivos(a,b) );
    // outros casos
    printf( "a = %f, b = %f, saoPositivos(a,b) retornou %d\n",
           2., -2., saoPositivos(2.,-2.) );
    printf( "a = %f, b = %f, saoPositivos(a,b) retornou %d\n"
           , -3., 3., saoPositivos(-3., 3.) );
    a = 0; b = 0.0;
    printf( "a = %f, b = %f, saoPositivos(a,b) retornou %d\n",
           a, b, saoPositivos(a,b) );
    return 0;
}

char    saoPositivos(const double um, const double outro)
{    return (um>0) && (outro >0); };

 

Sim, a tal função pode ter só uma linha. E o programa não precisa ter nenhuma variável....

 

Esse aí mostraria

 

a = 2.200000, b = 3.300000, saoPositivos(a,b) retornou 1
a = 2.000000, b = -2.000000, saoPositivos(a,b) retornou 0
a = -3.000000, b = 3.000000, saoPositivos(a,b) retornou 0
a = 0.000000, b = 0.000000, saoPositivos(a,b) retornou 0

 

Mas esse 
 

#include <stdio.h>
char        saoPositivos(const double,const double);

int  main(void)
{
    printf( "a = %f, b = %f, saoPositivos(a,b) retornou %d\n",
           2., -2., saoPositivos(2.,-2.) );
    printf( "a = %f, b = %f, saoPositivos(a,b) retornou %d\n",
           33., 3., saoPositivos(33., 3.) );
    return 0;
}

char    saoPositivos(const double um, const double outro)
{    return (um>0) && (outro >0); };

 

Mostra

 

a = 2.000000, b = -2.000000, saoPositivos(a,b) retornou 0
a = 33.000000, b = 3.000000, saoPositivos(a,b) retornou 1

 

E testa dois casos

 

 

 

  • Obrigado 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!