Ir ao conteúdo
  • Cadastre-se

mariaclara157

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

3
  1. Obrigada! Agora entendi o que estava errando. @arfneto Criei essas funções e realmente ficou bem mais simples e claro (deixei as anotações do devair para me ajudar) #include<stdio.h> int le_serie(int*); int calcula_serie(int n, int* ); int inverte_serie(int n, int* ); int serie_invertida(int n, int* ); int main() { int n=0, a[50], i = 0; while(n < 4){ printf("quantidade de termos da serie: "); scanf("%d", &n); } le_serie(a); calcula_serie(n, a); serie_invertida(n, a); // enviando um vetor por parametro return 0; } int le_serie(int a[]){ printf("primeiro termo: "); scanf("%d", &a[0]); printf("segundo termo: "); scanf("%d", &a[1]); printf("Terceiro termo: "); scanf("%d", &a[2]); return a[0], a[1], a[2]; } int calcula_serie(int n, int a[]) // recebendo um vetor por parametro { int i; for (i = 3; i < n; i++) a[i] = a[i - 1] + a[i - 2] + a[i - 3]; return a[i]; inverte_serie(n,a); } int inverte_serie(int n, int a[], int inv[]) { int i; for (i = n; i > 0; i--) inv[i] = a[i]; return inv[i]; } int serie_invertida(int n, int inv[]){ int i; printf("\nOrdem inversa:"); printf("\n{"); for (i = n; i >= 0; i--) printf(" %d", inv[i]); printf("}\n"); } a minha ordem inversa acaba saindo com 1 digito a mais que não deveria estar ali, o que poderia ser? E pensando agora sobre a questão de fazer a subtração (ordem sendo criada a partir das 3 ultima somas e depois subtração intercalando entre elas), eu poderia criar um outro vetor para receber o a[] e fazer a subtração? ou esse jeito estaria errado?
  2. Oi gente, boa noite! Eu estou estudando função recursiva em C e estou com dúvida numa questão que estou fazendo. O objetivo do programa é ler a quantidade de termos de uma série, inserir os 3 primeiros termos, e depois os termos da série são gerados pela soma e pela subtração dos 3 termos inseridos. No final, o compilador deve mostrar a sequência gerada e ela inversa. #include<stdio.h> void calcula_serie(int n, int a[]); void inverte_serie(int n, int a[]); int main() { int n, *a[50], i = 0; printf("Insira a quantidade de termos da serie: "); scanf("%d", &n); printf("Digite o primeiro termo: "); scanf("%d", &a[0]); printf("Digite o segundo termo: "); scanf("%d", &a[1]); printf("Digite o segundo termo: "); scanf("%d", &a[2]); calcula_serie(n, a[50]); return 0; } void calcula_serie(int n, int a[]){ int i; for (i = 3; i < n; i++){ a[i] = a[i - 1] + a[i - 2] + a[i - 3]; } printf("\nOrdem Original:"); printf("\n{"); for (i = 0; i < n; i++) printf(" %d", a[i]); printf("}\n"); inverte_serie(a[i]); } void inverte_serie(int n, int a[]){ int i; printf("\nOrdem inversa:"); printf("\n{"); for (i = n; i >= 0; i--) printf(" %d", a[i]); printf("}\n"); } Eu só fiz a parte da soma, mas meu código não roda no meu compilador, alguém pode me ajudar?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!