Guizera 0 Denunciar post Postado Agosto 19, 2012 Prezados, Fiz o seguinte código aqui. Quero simplesmente fazer a soma dos vetores em recursividade. O compilador não retorna erro, mas o valor não é mostrado também. //Variáveis int[] A; int tamanho, i; Console.WriteLine("Digite o tamanho do vetor:");// Ler tamanho do vetor tamanho = int.Parse(Console.ReadLine()); A = new int[tamanho]; // Vetor recebe tamanho for (i = 0; i < tamanho; i++) //For para digitar os elementos { Console.WriteLine("Digite o elemento " + i + ":"); A[i] = int.Parse(Console.ReadLine()); } Console.WriteLine("Imprime Soma Vetores:"); imprimesoma(A, tamanho); public static int imprimesoma(int[] A, int tamanho) { return calculasoma(A, tamanho); } private static int calculasoma(int[] A, int indice) // Método imprimir por recursividade a soma do Vetor { if (indice == 0) return 0; else { int s; s = calculasoma(A, indice - 1); if (A[indice - 1] > 0) s += A[indice - 1]; return s; } } Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Agosto 20, 2012 Desculpa não localizei onde "printa" o valor. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Kairion 0 Denunciar post Postado Agosto 26, 2012 Não sei se o problema já foi resolvido, mas de qualquer forma, vou postar a solução do "problema". Guizera, o que ocorre é que o método imprimesoma é chamado, mas ele apenas retorna o valor, não o imprime na tela. Há duas maneiras de resolver isto: a primeira consiste em alterar a linha onde o método é chamado, de forma que o retorno seja impresso. Ou seja, o código está assim: imprimesoma(A, tamanho); E mudaria para: Console.WriteLine(imprimesoma(A, tamanho)); // assim, imprimindo o valor retornado pelo método Ou você pode alterar o método, fazendo com que ele imprima o resultado quando for chamado. Assim, o código passaria disso: public static int imprimesoma(int[] A, int tamanho) { return calculasoma(A, tamanho); } Para isso: public static void imprimesoma(int[] A, int tamanho) // void pois não vai retornar nada, mas sim imprimir { Console.WriteLine(calculasoma(A, tamanho)); // o Console.WriteLine faz com que o retorno do método seja impresso } Abraços ;) Compartilhar este post Link para o post Compartilhar em outros sites