Ir ao conteúdo

Posts recomendados

Postado

Boa tarde, estou fazendo um exercicio e ele pede pra usar passagem de parametro por referencia. Eu tenho que utilizar ponteiro, isso?Se não como posso fazer? Fiz uma parte do codigo, gostaria que vissem se ate esse ponto esta certo. 
O exercico é esse:

 


04 – Primeiramente crie uma função que receba dois parâmetros do tipo caractere, um chamado nome e o segundo chamado sobrenome. Essa função, após receber os parâmetros, deve atribuir o nome ao sobrenome e o sobrenome ao nome. Os parâmetros devem ser passados por referência. Crie uma segunda função para mostrar na tela o valor da variável nome e da variável sobrenome. Importante: Essa função não deve receber parâmetro algum. 

 

Se caso ate onde eu fiz esta certo, gostaria de saber como posso printar o resultado dentro de uma função, que não pode usar parametro, nem retorno, nem variavel global....

 

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void concatena(char *nome,char *sobrenome){
char auxiliar[10];

strcpy(auxiliar,nome);
strcat(nome,sobrenome);
strcat(sobrenome,auxiliar);
}

void resultado(){
//Como dar printf nessa função//
}

int main(){
char nome[20],sobrenome[20];

printf("Digite um nome: ");
gets(nome);
printf("\nDigite um sobrenome: ");
gets(sobrenome);

concatena(nome,sobrenome);
resultado();


system("pause");
return 0;
}


 

Postado

Olá@s4lezardv1A !

 

Por que tem que ser deste jeito 🤔

42 minutos atrás, s4lezardv1A disse:

Se caso ate onde eu fiz esta certo, gostaria de saber como posso printar o resultado dentro de uma função, que não pode usar parametro, nem retorno, nem variavel global...

 

Postado
6 minutos atrás, AnsiC disse:

Olá@s4lezardv1A !

 

Por que tem que ser deste jeito 🤔

 

você diz de não poder usar variavel global e nem return na função que mostra os nomes? Não sei..., o exercicio pede isso n sei por qual motivo. Tem algum jeito de mostrar o resultado sem parametro?? Como você faria esse exercicio? Eu fiz certo o uso de ponteiros?

Postado

:oops: Leia-se no enunciado da questão.

22 horas atrás, s4lezardv1A disse:

04 – Primeiramente crie uma função que receba dois parâmetros do tipo caractere, um chamado nome e o segundo chamado sobrenome. Essa função, após receber os parâmetros, deve atribuir o nome ao sobrenome e o sobrenome ao nome. Os parâmetros devem ser passados por referência. Crie uma segunda função para mostrar na tela o valor da variável nome e da variável sobrenome. Importante: Essa função não deve receber parâmetro algum. 

― Não foi imposto uma ordem de execução \ estruturação de blocos. Desde que o programa (concatene, e exiba), com duas funções, uma função pode ser interna a outra sem problema, mais precisamente; a primeira interna a segunda sem com isso está errada a resposta.

 

Estrutura básica da Função 2, usando a Função 1

 


void segunda_funcao(void)
{
    /** Declaração de variáveis: nome e sobrenome */
    char pnome[nome_e_sobrenome_tamanho];
    char snome[nome_e_sobrenome_tamanho];
  
    puts("Nome"); /*< exibir no prompt mensagem */
    gets(pnome);  /*< obter nome */
  
    puts("Sobrenome"); /*< exibir no prompt mensagem */
    gets(snome);       /*< obter sobrenome */
  
    /** Concatenar: nome + sobrenome & sobrenome + nome */
    primeira_funcao(pnome, snome);
  
    puts(pnome); /*< exibir no prompt nome sobrenome */
    puts(snome); /*< exibir no prompt sobrenome nome */
  
    return; /*< finalizar a segunda_funcao  */
}

― Você entende isso, ou não?

Aguardando O.K!

 

 

21 horas atrás, s4lezardv1A disse:

Eu fiz certo o uso de ponteiros?

― Sim. Em linguagem C, referência é com ponteiro.

 

 

 

Postado
5 horas atrás, AnsiC disse:

:oops: Leia-se no enunciado da questão.

A única restrição é que, a segunda função, é de impressão e não tem parâmetros. Ou seja, não existe nada dizendo ou restringido o uso de variáveis globais, porém é sem sentido, de fato, o uso de variáveis globais para solução do problema porque parte do problema é uma rotina com parâmetros formais, daí o uso de variáveis globais é sem sentido. Contudo, nada no enunciado impede o uso de variáveis globais, mesmo sendo contra-sentido. Assim sendo, essas funções são de uso livre, outra aspecto do qual o enunciado não aborda de maneira restritiva: o que estou dizendo é que, não foi imposto uma ordem de execução \ estruturação do código. Desde que a programa (concatene, e exiba), uma função pode ser interna a outra sem problema, mais precisamente; a primeira interna a segunda sem com isso está errada a resposta. (assim penso).

 

Estrutura básica da Função 2, usando a Função 1


void segunda_funcao(void)
{
  /* Declaração de variáveis: nome e sobrenome */
  char pnome[nome_e_sobrenome_tamanho];
  char snome[nome_e_sobrenome_tamanho];
  
  puts("Nome"); /*< exibir no prompt mensagem */
  gets(pnome);  /*< obter nome */
  
  puts("Sobrenome"); /*< exibir no prompt mensagem */
  gets(snome);       /*< obter sobrenome */
  
  primeira_funcao(pnome, snome); /*< concatenar: nome + sobrenome & sobrenome + nome */
  
  puts(pnome); /*< exibir no prompt nome sobrenome */
  puts(snome); /*< exibir no prompt sobrenome nome */
  
  return; /*< finalizar a segunda_funcao  */
}

Você entende isso, ou não?

aguardando O.K!

 

 

Sim. Em linguagem C, referência é com ponteiro.

 

 

 

sim sim, pensando em um modo de responder a questão poderia ser assim mesmo. Por enquanto eu deixei a questão desse modo, função dentro de função. Mas sera que não existe algum modo de eu chamar uma função sem retorno e sem parametro para eu imprimir ponteiro?Tentei declarar o ponteiro dentro dessa função sem sucesso...

Postado
15 horas atrás, s4lezardv1A disse:

Tentei declarar o ponteiro dentro dessa função sem sucesso...

― Se você acha que vale a pena tanto esforço e tempo, continue tentando.

Compartilhe conosco as novidades. O.k!

 

Postado
 

― Se você acha que vale a pena tanto esforço e tempo, continue tentando.

Compartilhe conosco as novidades. O.k!

 

Sem sucesso mesmo, não vale a pena nao kk. Deixei a primeira função dentro da segunda mesmo. valeu Ansic

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!