Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Ajuda em raciocínio em C

Por favor, preciso de um ajuda em 2 problemas, n sei como nem começar o código, quem puder me ajudar ficaria muito grato.

1-O salário inicial de um engenheiro de software (ES) recém formado é de R$ 90.000,00 ao ano. Considere um índice de inflação anual de 8%, bônus de 4% a cada quatro anos trabalhados e um teto salarial para engenheiros de software de R$ 150.000,00. Escreva um programa em linguagem C que leia o nome de um ES e o número de anos trabalhados e informe o salário atual. A saída deve parecer como: João da Silva trabalha por xx anos. Salário atual: R$ yyy,yy / ano

2-Verificar se um dado número natural é ou não um Número Primo. Teorema: Se um dado número natural n não possuir divisores <= raizq(n), então n é um número Primo. raizq(n)  significa raiz quadrada de n

4 respostas

italo tu ja tem alguma ideia de programação? tu tem que pedir duas informações o nome e os anos trabalhados e pegar elas com o scanf e depois realizar o calculo do salario atual, pra ser primo o numero so pode ser divisivel por 1 e ele mesmo, tu pode fazer isso com um contador de divisores iguais a zero se contador = 2 é primo

Entao, o meu codigo nao esta dando certo.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>


int main (){

    int i,a;
    float s=90000,t,f,inf,bon;
    char n;

        printf("Insira o nome do enegenheiro: \n");
            scanf("%c",&n);
        printf("Insira a quantidade de anos trabalhados pelo engenheiro: \n");
            scanf("%d",&a);

//            s = 90000;
            t = 150000;
            //A cada 4 anos = bonus de 4%
            //A cada 1 ano = inflaçao de 8%
            inf=0.08;
            bon=0.04;

                for (i=1;i<=a;++i){

                    s = s + (s * inf );

                        if (i%4==0){
                            s = s + s * bon;
                        }
                }

                s = s/a;
                printf("%c trabalha por %d anos. Salário atual: R$ %f / an",c,a,s);





    return 0;

}
solução!

Olá Italo!

Acredito que você seja um iniciante em programação, assim como eu. Então se me permite uma dica, não abrevie tanto as variáveis. Deixe-as com nomes fáceis de serem entendidos.

Fiz um código de acordo com a forma que entendi seu problema. Caso não seja isso, favor enviar mais detalhes ou redigi-lo de forma diferente.

Se possuir algum valor de resposta correta, faça o teste de mesa com esses valores no código.

Abraços e bons estudos.

// 1º Exercício:

#include <stdio.h>

int main () {

    char nome[30];
    float salario_atual;
    int anos_trabalhados;

    printf("Informe seu nome: \n");
    fflush(stdin);
    gets(nome);

    printf("Informe quantos anos voce trabalhou: \n");
    scanf("%d", &anos_trabalhados);

    salario_atual = 90000*(1 + (((anos_trabalhados - (anos_trabalhados % 4)) / 4)*0.04 + anos_trabalhados*0.08));

    if (salario_atual > 150000) {
        printf("Voce excedeu o teto maximo.\n");
    }

    else {
        printf("%s trabalhou por %d anos e o salario atual e de %.2f reais por ano.\n", nome, anos_trabalhados, salario_atual);
    }
}

/* 2º Exercício: Pelo que me lembro, se você garantir que o número é diferente de 2, 3 e 5 e, garantir que a divisão do numero por qualquer um deles é 0, obrigatoriamente o número não será primo. */

#include <stdio.h>

int main () {

    int numero;

    printf("Informe o numero: \n");
    scanf("%d", &numero);

    if ((numero != 2 && numero % 2 == 0) || (numero != 3 && numero % 3 == 0) || (numero != 5 && numero % 5 == 0)) {

        printf("O numero nao e primo\n");
    }

    else {

        printf("O numero e primo.\n");
    }
}

Muito Obrigado!! =D