Ir ao conteúdo
  • Cadastre-se

IndyMa

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

1
  1. Poxa Galera, valeu mesmo! tinham muitos erros mesmo e minha falta de atenção contribuiu para meu mau desempenho, mas obrigada por me mostrarem aonde errei, obrigada mesmo!!! Vocês são mestres =)
  2. Oi gente, eu tô iniciando em C, criei um programa, mas tô com problemas nele, será que algum de vocês pode me dar uma luz? =) Tenho o seguinte problema pra resolver: 27. Crie um programa para manipular vetores. O seu programa deve implementar uma função chamada inverte_vetor, que recebe como parâmetro dois vetores V1 e V2, ambos de tamanho N. A função deve copiar os elementos de V1 para V2 na ordem inversa. Ou seja, se a função receber V1 = {1,2,3,4,5}, a função deve copiar os elementos para V2 na seguinte ordem: V2 = {5,4,3,2,1}. Além disso, a função também deve retornar o maior valor encontrado em V1. A função deve obedecer ao seguinte protótipo: int inverte_vetor(int *v1, int *v2, int n); Em seguida, implemente no mesmo modulo outra função chamada multiplica_escalar, que recebe como parâmetro dois vetores V1 e V2 (ambos de tamanho N), e um número inteiro X. A função deve multiplicar cada um dos elementos de V1 por X e armazenar os resultados em V2. A função deve obedecer ao seguinte protótipo: void multiplica_escalar(int *v1, int *v2, int x, int n); Em seguida crie a função principal do programa utilizando as funções inverte_vetor e multiplica_escalar para inverter um vetor de tamanho 10 fornecido pelo usuário e em seguida multiplicar esse vetor por um escalar também fornecido pelo usuário. Por último, o programa deverá exibir o vetor resultante. para isso eu criei o seguinte programa: #include<stdio.h> #include<stdlib.h> int inverte_vetor(int *vet1, int *vet2, int tamanho); void multiplica_escalar(int *vet1, int *vet2, int x, int n); int main(void) { int tamanho; printf("digite o tamanho do vetor:\n"); scanf("%d",&tamanho); int v1[tamanho-1]; int v2[tamanho-1]; for(int i=0; i<tamanho; i++) { printf("Digite o elemento \n"); scanf("%d", &v1); } for(int i=0; i<tamanho; i++) { printf("vetor1[%d]=%d\t vetor2[%d]=%d\n", i, v1, i, v2); } inverte_vetor(&v1[tamanho-1], &v2[tamanho-1], tamanho-1); int maior = inverte_vetor(&v1[tamanho-1], &v2[tamanho-1], tamanho-1); printf("maior numero: %d\n", maior); int v3[tamanho-1]; int x; printf("digite o valor de x: \n"); scanf("%d",&x); multiplica_escalar(&v3[tamanho-1], &v2[tamanho-1], x, tamanho-1); for(int i=0; i<tamanho; i++) { printf("vetor3[%d]=%d\n",i, v3); } return 0; } int inverte_vetor(int *vet1, int *vet2, int tamanho) { int maior = 0; for(int i = 0; i<=tamanho; i++) { *(vet2+(tamanho-1))=*(vet1+1); if(*(vet1+(tamanho-i)) >maior) { maior = *(vet1+(tamanho-i)); } } return maior; } void multiplica_escalar(int *vet1, int *vet2, int x, int tamanho) { for(int i=0; i<=tamanho; i++) { *(vet1+i)=*(vet2+i)*x; } } Ele roda no Devc++, só que não inverte o vetor, não retorna o maior número e dai não faz a multiplicação, Alguém me ajuda por favor, tô muito perdida, obrigada =)

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...