Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
#include<stdio.h> #include <stdlib.h> #define MAX 15 void fundiv (int valor[], int esquerdaI, int direitaF, int *soma); // //Prototico da função quickSort //Corpo do programa int main(){ int valor[MAX], soma; //[MAX] posicao (MAX Valor limitado do vetor) int esquerdaI = 0; //esquerda primeira posicao int direitaF = MAX - 1; //direita ultima posiçao /* gerando valores aleatórios entre zero e MAX */ printf ("\n--------------------- ** Gerando %d Valores Aleatorios: ** ----------------------\n", MAX); //Numero de valores aleatorios a serem calculados printf ("\n"); printf ("Valores: "); for (int cont = 0; cont < MAX; cont++){ //percorre o vetor valor[cont] = (rand () % 100 ); //Cria o vator em ordem randomica. printf("%d - ", valor[cont]); } fundiv(valor, esquerdaI, direitaF , &soma); //passa para a função o valor, o valor inicial da esquerda "0", e o final da direita "MAX", chamando por parametro a variavel soma printf ("\n\n------------------------------------------------------------------------------------"); printf ("\n--------------------- ** O Resultado total da soma = %d ** ---------------------\n", soma - valor[direitaF]); printf ("\n\n"); printf (" \t\t\t\t\tTrabalho de APA - Quest5\n\n"); return 0; } //função de divisao e conquista void fundiv (int valor[], int esquerdaI, int direitaF, int *soma){ int soma1,soma2; if(direitaF - esquerdaI <= 1){ *soma= valor[esquerdaI] + valor[direitaF]; return; } fundiv (valor, esquerdaI, (esquerdaI + direitaF) / 2, &soma1); //primeiro soma a direita (div e conq) fundiv (valor, ((esquerdaI + direitaF) / 2) + 1, direitaF, &soma2); //soma a esquerda (div e conq) *soma = soma1 + soma2; }
Compartilhar