Bem-vindo: Ter, 4 de Novembro 2025, 14:35 Pesquisa avançada
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int L=0, W=0, C=0;
    int *P;
    int valida;
    do
    {
        valida = 1;
        printf("Insira os valores (2 <= L <= 50, 1 <= W <= 25, 1 <= C <= 25):\n");
        scanf("%d %d %d", &L, &W, &C);
        if((L<2 || L>50) || (W<1 || W>25) || (C<1 || C>25))    // Valida valores
        {
            printf("ERRO: Valor(es) fora do limite!\n");
            valida = 0;
        }
    }while(!valida);
    
    /*
     * Depois de validado, cria o vector de profundidade que irá receber os valores
     */
    P = (int *) calloc(L+1, sizeof(int));
    P[0] = 0;    // Margem esquerda
    P[L] = 0;    // Margem direita
    
    do
    {
        valida = 1;
        printf("Insira os valores de profundidade (são %d valores):\n", L-1);
        static int i;
        for(i=1; i<L; i++)
        {
            scanf("%d", &P[i]);
        }
        
        for(i=1; i<L; i++)
        {
            if(P[i] < 0)    // Valida valores
            {
                printf("ERRO: Valor negativo!\n");
                valida = 0;
            }
        }
    }while(!valida);    // Valida valores
    
    return 0;
}
 C+0.1 = P(i) + K * (P(i+1) - P(i))
K = ((C+0.1) - P(i)) / (P(i+1) - P(i))
     (C+0.1) - P(i)
K = -----------------
     (P(i+1) - P(i))    double K=0.0, X=-1.0;
    int conta=0;
    
    for(i=0; i<L; i++)
    {
        K = ((C+0.1) - P[i]) / (P[i+1] - P[i]);
        printf("[%d]\t%f\n", conta, K);
        if(K>=0 && K<=1)
        {
            if(X==-1.0)
            {
                X = i + K;
            }
            else if(conta < (X+W) && (X+conta) < L)
            {
                conta++;
            }
            else if(conta >= (X+W) && (X+conta) < L)
            {
                break;
            }
            else
            {
                X = -1.0;
                conta = 0;
            }
        }
        else
        {
            X = -1.0;
            conta = 0;
        }
    }
    printf("%.6f\n", X); Rogergalvao (21-09-2013, 23:28) escreveu:Então Luis obrigado pelo feedback , mas não entendi muito bem a segunda parte.Qual é a idéia nela? Porque tipo o valor de k sempre vai estar entre 0 e 1 ou seja 0<=k<=1 pelo que foi dado no enunciado.
Rogergalvao (21-09-2013, 23:28) escreveu:Então Luis obrigado pelo feedback , mas não entendi muito bem a segunda parte.Qual é a idéia nela? Porque tipo o valor de k sempre vai estar entre 0 e 1 ou seja 0<=k<=1 pelo que foi dado no enunciado.

Usuários navegando neste fórum: Nenhum usuário registrado e 7 visitantes