Ir ao conteúdo
  • Cadastre-se

C Usando funções em C


fernandobrito

Posts recomendados

Ex: Um certo aço é classificado de acordo com o resultado de três testes abaixo, que devem determinar se o
mesmo satisfaz às especificações:
1. Conteúdo de Carbono abaixo de 7.
2. Dureza Rockwell maior do que 50.
3. Resistência à tração maior do que 80.000 psi.
Ao aço é atribuído o grau “10” se passar por todos os testes; grau “9” se passar somente nos testes 1 e
2; grau “8” se passar no teste 1 apenas; grau “7” caso o aço não se enquadre nos graus, “10”, “9”, e “8”.
Escreva uma função que receba como parâmetros o valor de conteúdo de carbono, o valor da dureza e o
valor de resistência à tração de um aço e retorne o grau do aço. Desenvolver um programa que leia o conteúdo
do carbono (CC), a dureza Rockwell (DR) e a resistência à tração (RT), chame a função especificada
acima e imprima a classificação do aço.

 

#include<stdio.h>

     
        main () {
     
            int c,dr,rt,grau;
            scanf("%d",&c);
            scanf("%d",&dr);
            scanf("%d",&rt);
     
     
            if (c<7 && dr>50 && rt>80000) {
                printf("ACO DE GRAU = %d\n",10);
            }
            if (c<7 && dr>50 && rt<=80000) {
                printf("ACO DE GRAU = %d\n",9);
            }
            if (c<7 && dr<=50 && rt<=80000) {
                printf("ACO DE GRAU = %d\n",8);
            }
            if (c>=7 && dr<=50 && rt<=80000) {
                printf("ACO DE GRAU = %d\n",7);
            }
            if (c>=7 && dr>50 && rt>80000) {
                printf("ACO DE GRAU = %d\n",7);
            }
            if (c>=7 && dr<=50 && rt>80000) {
                printf("ACO DE GRAU = %d\n",7);
            }  }

 

Gostaria de saber como faço esse ex com funções, preciso aprender pois vou ter uma prova e vai ser obrigatório usar funções em todos os exercícios.

 

 

 

Link para o comentário
Compartilhar em outros sites

printf("ACO DE GRAU = %d\n",10);

Nessa linha você poderia ter colocado diretamente o valor, porque só seria necessário se quisesse mostrar o valor de uma variável. Ficaria dessa forma:

printf("ACO DE GRAU = 10\n");

Bom, eu modifiquei da maneira que você precisava e ficou dessa forma:

#include <stdio.h>

int Verificacao(int c, int dr, int rt)
{
    int AcoGrau;
    if (c<7 && dr>50 && rt>80000)
    {
        AcoGrau = 10;
    }
    else if (c<7 && dr>50 && rt<=80000)
    {
        AcoGrau = 9;
    }
    else if (c<7 && dr<=50 && rt<=80000)
    {
        AcoGrau = 8;
    }
    else if ((c>=7 && dr<=50 && rt<=80000) || (c>=7 && dr>50 && rt>80000) || (c>=7 && dr<=50 && rt>80000))
    {
        AcoGrau = 7;
    }
    return AcoGrau;
}

main ()
{
    int c,dr,rt, grau;
    printf("Insira o conteudo de carbono:\n");
    scanf("%d",&c);
    printf("Insira a dureza Rockwell:\n");
    scanf("%d",&dr);
    printf("Insira a resistencia a tracao:\n");
    scanf("%d",&rt);
    grau = Verificacao(c, dr, rt);
    printf("Grau do aco: %d", grau);
    return 0;
}

 

Caso não tenha entendido alguma parte do código, pode perguntar.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

agora, fernandobrito disse:

Ah entendi, praticamente só colocar a lógica dentro da função. Porque voce usou o return Acograu?

 

Bom, se eu apenas tivesse atribuído o valor à variável, eu não iria obter nenhum resultado nessa linha:

grau = Verificacao(c, dr, rt);

Ou seja, esse return faz a função ter um valor. Por exemplo: se AcoGrau = 10, então a linha acima teria o mesmo valor que isso:

grau = 10;

No enunciado da questão também fala que a função deve retornar o valor do grau do aço.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

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