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

Função com argumento


AndreJustulino

Pergunta

O que estou fazendo de errado?


int inserirlistaseq (int lista[],int tam, int &quant,int valor){

if (quant ==tam)
return 0;
lista[quant]=valor;
quant = quant+1;
return 1;
}

int main (){
int dados [tamanho];
int quantidade =0;
int resultado,int novovalor;

cout<<"Digite o valor: ";
cin>>novovalor;
resultado = inserirlistaseq(dados,dados,quantidade,novovalor);


}

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá!

 

Olha sou iniciante em C enão em C++ e fora o fato de que ultimamente não estou nada bem para entender o código de outros programadores, mas vou tentar lhe ajudar . . .

 

- |15|error: ‘tamanho’ was not declared in this scope| - este erro está lhe alertando para o fato de que a variável “ tamanho ” não existe no código, não foi declarada

 

- |21|error: expected unqualified-id before ‘int’| - este erro se deve ao fato de que você colocou uma virgula ( , ) depois da variável int resultado, quando o correto seria ponto e virgula ( ; )

 

- |26|error: invalid conversion from ‘int*’ to ‘int’ [-fpermissive]| - este erro se deve ao fato de que na sua função você especificou que das 4 variáveis apenas a primeira vai receber um(o) vetor:

 

inserirlistaseq(dados,dados,quantidade,novovalor);

 

sendo assim você não pode passar o segundo “dados” para a sua função, pois, pela sintaxe da sua função apenas a primeira é que deveria ser passada, a segunda não!

 

 

- Não estou certo quanto a linguagem C++, mas na linguagem C quando você quer passar um valor ( variável ) por referencia, deve-se fazer o seguinte procedimento:

 

Na declaração da sua função, você vai especificar qual variável vai receber o valor por referencia usando um asterisco ( * ) para indicar que a variável é do tipo ponteiro:

 

int inserirlistaseq ( int lista[], int tam, int *quant, int valor )

{

. . .

}

 

e ao chamar a sua função, indicar que você deseja passar a variável por referencia usando um e-comercial ( & ) para indicar o endereço na memoria da variável:

 

resultado = inserirlistaseq ( dados, alterar_variavel, &quantidade, novovalor );

 

 

- E dentro da sua função, existem dois (2) return,  um que retorna 1 e o outro que retorna 0, a questão é que em casos como esse, você deixe o código bem definido colocando um abre e fecha chaves a fim de facilitar e deixar bem explicito o que cada parte do código vai fazer e em que condições.

 

- tente dar uma pesquisada sobre a passagem de valores para funções, seja atraves de valor ou atraves de referencia

 

 

Bom como disse não estou nada bem para entender o codigo de outros programadores ultimamente, então só vou ate aqui, veja se com as dicas acima voce já consegue alguma luz!

 

Ubuntu 14.04  GCC 4.8  CodeBlocks 13.12

 

Espero Ter Ajudado ! ! !

 

 

Editado por Felipe222
Link para o comentário
Compartilhar em outros sites

  • 0
1 hora atrás, Felipe222 disse:

- Não estou certo quanto a linguagem C++, mas na linguagem C quando você quer passar um valor ( variável ) por referencia, deve-se fazer o seguinte procedimento:

 

O procedimento é o mesmo que em c++, porem não se deve dizer referencia pois uma referencia em C++ é quando fazemos void foo ( int &x ){...}. Na hora de efetuar o passo por referencia em C++, nós invocamos a função foo(como a do exemplo anterior) e passamos normalmente tal como se de um passo por valor se tratase foo(valor);, é mais ou menos como uma referencia em C com umas quantas diferenças, tratase de uma "item" que aponta uma variavel, porem a diferença reside que int &x não pode ser usado para apontar outro valor diferente ao valor que foi designado na atribuição, por isso chamo de item e não de variavel, si eu quero usar uma referencia em C++ devo indicar o valor justo na declaração. Imaginamos que tenho  int n = 10, e quero uma referencia a n, então faço int &ref=n;, note que não preciso por & adiante como fazemos com ponteiros, assumimos que  &ref já espera uma direção de memoria, por isso não preciso por & adiante de n. Outra diferença é que em nenhum momento posso "reutilizar" ref como um ponteiro, tentando faze-la apontar a outra variável, tipo ref=outraVariavel, ref tem que ganhar o valor como disse anteriormente na hora declaração, digamos que ela se "conecta" com a variável que recebeu por atribuição na hora da declaração, então em C++ referencias são quando você precisa passar a direção porem a variável que a recebe não pode apontar outra coisa, e ponteiro você sim pode voltar a reutilizar, referencias em C++ tem um comportamento semelhante a um const int*, você deve dar o valor justo na hora de declarar, e depois já não pode mudar esse valor. Referencias em C++ se costumam usar internamente dentro de uma mesma classe pois é mais comodo que o uso de ponteiros, quando uma variável tem que ser intercambiada entre 2 classes então se costuma usar ponteiros que são mais flexíveis.

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...