/*João Pedro Teixeira*/

/*8. Faça um programa com funções para:
a.	ler x valores inteiros e os armazene em um vetor;
b. 	listar o conteúdo do vetor com as referidas posições de armazenamento;
c.	pesquisar no vetor um valor inteiro qualquer de entrada e retornar a posição deste valor. Caso esse valor não esteja presente no vetor, então retornar –1;
d.	trocar valores contidos no vetor pela seguinte política: cada elemento i dentro do vetor será substituído pela soma de todos os (i-1) elementos mais o elemento i. Por exemplo, dado um vetor [1; 2; 3; 4; 5], após a aplicação da função teríamos esse vetor preenchido com os seguintes valores [1; 3; 6; 10; 15]. Para esta tarefa utilize um vetor passado como parâmetro para a função'.
e.	faça uma função com a mesma funcionalidade da anterior, com a diferença de que o resultado deve ser armazenado em um segundo vetor passado como parâmetro. Assim, o vetor original não será modificado
f.	faça uma função com o protótipo: void converte(int *vet, char *palavra); A função deve converter os números inteiros para o correspondente na tabela ASCII e armazená-los no segundo parâmetro. Por exemplo: int vet[4]={67, 65, 83, 65}, deve armazenar em palavra a string "CASA". Lembre que palavra possui um elemento a mais para armazenar o terminador '\0'.
*/

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


 void letraA (int *v, int tam)
{
    int i;
    for(i=0;i<tam;i++)

    {
        printf("\nDigite um valor para v[%d]:", i);
        scanf("\n%d", &v[i]);
    }

}

 void letraB (int *v, int tam)
 {
    int i;
    for(i=0;i<tam;i++)
    {
        printf("\n %d  v[%d]", v[i],i);
    }

 }
 void letraC (int *v, int tam)
 {
     int i, valor;

     scanf("%d", &valor);
     for(i=0;i<tam;i++)
     {
        v[i];
        if(valor==v[i])
        {
            printf("\nO valor digitado encontra-se na posição %d do vetor\n", i);
            return (0);
        }

        }
        printf("\nERROR: O valor digitado não encontra-se no vetor");
            exit(-1);

 }

 void letraD (int *v, int tam)
 {
     int i;
     for(i=0;i<tam;i++)
     {
         v[i+1]= v[i]+v[i+1];
         printf("%d ", v[i]);

     }

 }

 void letraE(int *v, int tam)
 {
     int i, *vetornovo;
     vetornovo=(int*)malloc(tam*sizeof(int));
     vetornovo[0]= v[0];
     for(i=0;i<tam;i++)
     {
         vetornovo[i+1]=v[i+1]+vetornovo[i];
         printf(" %d ", vetornovo[i]);
     }

 }
 void converte(int *vet, char *palavra)
 {
     int i;
     printf("\n\nVetor de inteiros: ");
     for(i=0;i<4;i++)
     {
         printf("%d ", vet[i]);
     }

     printf("\nVetor palavra: ");
     for(i=0;i<4;i++)
     {
         palavra[i]=vet[i];
     }
     palavra[i]='\0';
    printf("%s", palavra);
}

 int main()
{
    setlocale(LC_ALL,"");
    char palavra[5];
    int size, vet[4]={67,65,83,65} ;
    printf("Letra a\n\nDigite o tamanho do vetor:");
    scanf("%d", &size);
    int v[size];
    letraA(v,size);
    printf("\nLetra b\n");
    system("pause");
    printf("\nOs valores digitados foram: ");
    letraB(v, size);
    printf("\n\n");
    system("pause");
    printf("\nLetra c\n\n\nDigite um valor do vetor para retornar sua posição:");
    letraC(v, size);
    printf("\nLetra d\n");
    printf("\nTroca de valores no vetor pela soma do antecessor");
    printf("\n\n");
    system("pause");
    printf("\nVetor trocado:\n");
    letraD(v, size);
    printf("\n");
    printf("\n\nLetra e\n\nTroca alocando valores em um novo vetor");
    printf("\n");
    system("pause");
    printf("\nVetor Novo alocado:\n");
    letraE(v, size);
    printf("\n\n");
    printf("\nLetra f\n");
    printf("\nConverção dos valores em letras: ");
    printf("\n");
    system("pause");
    converte(vet, palavra);
}
