Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com um exercício em C.


DidaFerrari

Pergunta

Bom dia, pessoal. Estou com um pequeno problema com o seguinte exercício:

"Faça um programa C para ler um vetor com 10 elementos. Modifique o vetor de modo que o primeiro elemento passe para a última posição, e desloque todos os outros elementos uma posição para a esquerda. Imprima o vetor. Exemplo:

Antes: 12 13 14 15 16 17 18 19 20 21

Depois:13 14 15 16 17 18 19 19 20 21 12

Fiz o seguinte código:

#include "stdio.h"
const int TAM=10;

void LEITURA(int V[TAM]){
    int a;
    for(a=0;a<TAM;a++){
        printf("Entre com o %dº número:\n",a+1);
        scanf("%d",&V[a]);
    }//Fim do For
}//Fim da função LEITURA

void MOSTRAR(int V[TAM]){
    int aux, i;
    aux=V[0];    
    for(i=1;i<TAM;i++){
        V[i]=V[i+1];
        printf("%d\n",V[i]);
    }//Fim do For
        printf("%d\n",aux);
}//Fim da função MOSTRAR

main(){
    int VET[TAM];
    LEITURA(VET);
    MOSTRAR(VET);
}//Fim da main

Na hora que eu compilo e testo o programa, o único vetor que imprimiu a posição certa foi o último, os outros ficam todos misturados. O que posso fazer pra ficar direito? Valeu, galera!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Fiz a resolução desse código em C++, porque não sou muito bom em C. Porém, a lógica utilizada nos laços for funciona nas duas linguagens. Tente olhar o código e descobrir como ele funciona. Se tiver qualquer dúvida, estou à disposição.

#include <iostream>

using namespace std;

int Numeros[10];

void Perguntar_Numeros(int);
void Mudar_Posicao_Numeros(int);
int  Mostrar_Numeros(int);

void Perguntar_Numeros(int Numeros[10])

{
    cout << "Digite 10(dez) números.\n " << endl;
    for (int i = 0; i < 10; i++)
    {
        cin >> Numeros[i];
        cout << endl;
        cin.sync();
    }
}

void Mudar_Posicao_Numeros(int Numeros[10])

{

    int Temp1, Temp2;
    Temp1 = Numeros[9];
    Numeros[9] = Numeros[0];
    Temp2 = Numeros[8];
    Numeros[8] = Temp1;

    for (int i = 0; i < 8; i++)

    {
        if (i == 9)
        {
            Numeros[i] = Numeros[i];
        }
        if (i == 8)
        {
            Numeros[i] = Numeros[i];
        }
        if (i == 7)
        {
        Numeros[i] = Temp2;
        }
        else if (i != 7 && i != 8 && i != 9)
        {
            Numeros[i] = Numeros[i+1];
        }
    }


}

void Mostrar_Numeros(int Numeros[10])

{

int i = 0;

while (i < 10)

{
   cout << Numeros[i] << endl;
   i++;
}

}

int main()
{
    setlocale(LC_ALL,"Portuguese");
    Perguntar_Numeros(Numeros);
    Mudar_Posicao_Numeros(Numeros);
    Mostrar_Numeros(Numeros);
    return 0;
}

Att.,

Pedro Cunha

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...