Ir ao conteúdo

Posts recomendados

Postado

Meu código:

#include <stdio.h> // Funções de entrada e saída

#include <stdlib.h> // Função padrão



// Adicionar novas bibliotecas acima de acordo com necessidade



/*

    // Espaço destinado a transcrição do enunciado para não ficar olhando toda hora a lista



    Faça um programa em C que copie o conteúdo de um vetor de 10 posições de inteiro em

um segundo vetor e imprima este último.



*/



int main() // Função obrigatória

   {

    /* Declaração de constantes ou variáveis */



    int vetor1[10] = {10,9,8,7,6,5,4,3,2,1};

    int vetor2[10];

    int i;

   

    /* Fim */



  
    for(i=0;i<=9;i++){



        //Copiando o vetor1 para o vetor2

        vetor2[i] = vetor1[i];



        i++;

    }



    /* Fim */




    /* Saida de dados */



    for(i=0;i<10;i++){



        printf("\nVetor2[%d] = %d",i,vetor2[i]);

    }

   

    // Exibe mensagem na tela



    system("PAUSE"); // Apenas no Windows

    return 0; // Pausa o programa para que ele não feche inesperadamente assim como o comando "getchar();"


   } // Fim

 

O erro:

 

Note que apenas as posições de índices pares (0,2,4,6,8 ) está aparecendo realmente os valores que foram copiado do vetor original vetor1[10] = {10,9,8,7,6,5,4,3,2,1} em posição equivalente.

Nas posições de índices (1,3,5,7,9) está aparecendo valores aleatórios como mostrado abaixo:

 

image.thumb.png.4d6b8a9cb5aa54041dbd78eb011707b5.png

 

(Eu não consigo de jeito nenhum corrigir o erro)

  • Curtir 1
Postado

@rafael_carmo Está somando duas vezes no loop...

    for (i = 0; i <= 9; i++)
    {
        // Copiando o vetor1 para o vetor2
        vetor2[i] = vetor1[i];
        i++;
    }

 

  • Declare i DENTRO do for
  • E não precisa das chaves
     
  • Nem desses comentários meio que óbvios
  • se não tem uma boa razão evite usar /**/ e use apenas // É muito mais prático.
  • não use acentos em comentários
  • não use system(). Não estará fazendo nada, Não estará aprendendo nada. Está programando em C. Pode fazer qualquer coisa em C. system() foi escrita em C. O sistema foi escrito em C
    for (int i = 0; i <= 9; i++) vetor2[i] = vetor1[i];
 

 

  • Curtir 1
  • Obrigado 1
Postado

@rafael_carmo    seu código corrigindo ficou assim :

/// https://www.clubedohardware.com.br/forums/topic/1606266-qual-%C3%A9-o-erro-no-meu-c%C3%B3digo-eu-estou-programando-em-c/
#include <stdio.h> // Funções de entrada e saída
#include <stdlib.h> // Função padrão
#include <windows.h>
/// Adicionar novas bibliotecas acima de acordo com necessidade
/**
  * Espaço destinado a transcrição do enunciado para não ficar olhando toda hora a lista
  * Faça um programa em C que copie o conteúdo de um vetor de 10 posições de inteiro em
  * um segundo vetor e imprima este último.
***/
int pausa(); 
int main() /// Função obrigatória
{
  /// Declaração de constantes ou variáveis
  int vetor1[10] = {10,9,8,7,6,5,4,3,2,1};
  int vetor2[10];
  int i;
  /// Fim
  for( i=0; i<=9; i++ )
  {
    /// Copiando o vetor1 para o vetor2
    vetor2[i] = vetor1[i];
    /// i++;
  }
  /// Fim
  /// Saida de dados
  for( i=0; i<10; i++ )
  {
    printf("\nVetor2[%d] = %3d",
    i , vetor2[ i ] );
  }
  /// Exibe mensagem na tela
  pausa();    /// Apenas no Windows
              /// Pausa o programa para que ele não 
              /// feche inesperadamente assim como o 
              /// comando "getchar();"
  printf("\n\n\n");
  return 0;   
} /// Fim
int pausa()
{
  printf("\n\nTecle !\n");
  FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));             ///  funCOes da API  do windows
  WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), INFINITE);       ///  funCOes da API  do windows
  return 0;
}

 

  • Amei 1
Postado
17 horas atrás, devair1010 disse:
pausa();    /// Apenas no Windows
              /// Pausa o programa para que ele não 
              /// feche inesperadamente assim como o 
              /// comando "getchar();

 

O programa não sabe disso de "apenas no Windows". Precisa no programa identificar qual o sistema.

 

O programa não "fecha inesperdamente". O programa simplesmente termina. O que está errado é

  • rodar apenas o programa dentro do IDE e achar que é o normal.
  • usar um IDE que não dá a opção de manter a janela de teste dos programas de console aberta ao final do programa
  • ou usar um IDE que permite e mesmo assim o estudante não o configurar desse modo
Em 12/07/2022 às 15:30, rafael_carmo disse:

(Eu não consigo de jeito nenhum corrigir o erro)


eu te disse o que estava errado

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!