Jump to content

Perceber output de programa


valeria

Recommended Posts

Alguém me pode explicar como este exercício tem o resultado 1411001?

#include<stdio.h>
int i;
int f1(int *i){
    printf("%d",*i);
    *i=*i+1;
    *i=*i%2;
    return *i;
}
int f2(int i){
    printf("%d",i);
    i=i+1;
    i=i%2;
    return i;
}
void f3(int i,int *r){
    printf("%d",i);
    i=i+1;
    *r=i;
}
int main(void){
    i=14;
    i=f1(&i);
    printf("%d",i);
    i=f2(i);
    printf("%d",i);
    f3(i,&i);
    printf("%d",i);
    return 0;
}
Link to comment
Share on other sites

Eu vejo várias coisas sem lógica nesse código!

Porque é que declaras uma variável global e depois a passas por parâmetro para dentro de funções!!!

Porque é que usas o "*" para aceder ao conteúdo da variável, se ela é uma variavel global?

Porque é que usas o "return" para devolver o valor da variável se ela é uma variável global?

 

Mas qual é mesmo o objectivo do programa?

Edited by PsySc0rpi0n

Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Link to comment
Share on other sites

Em 10/12/2016 às 20:47, valeria disse:

eu não percebo nada de programação comecei a dar na faculdade e tenho dificuldade

É muito pouco provável que tenhas começado programação logo por este tema. Como estão as restantes bases? E de qualquer modo, percebes o significado de todos os símbolos que aparecem junto aos nomes das variáveis? coisas como *i e &i.

 

16 minutos atrás, PsySc0rpi0n disse:

Acredito, mas aquilo para mim acho que não faz grande sentido!

O exercício tem um objectivo muito definido -- se achas que não faz sentido então não compreendeste o que o exercício está a tentar testar no programador. Olha para lá novamente e presta atenção à forma como as diferentes funções recebem os seus argumentos e que consequências isso tem na sua execução.

  • Vote 1
Link to comment
Share on other sites

5 hours ago, pwseo said:

É muito pouco provável que tenhas começado programação logo por este tema. Como estão as restantes bases? E de qualquer modo, percebes o significado de todos os símbolos que aparecem junto aos nomes das variáveis? coisas como *i e &i.

 

O exercício tem um objectivo muito definido -- se achas que não faz sentido então não compreendeste o que o exercício está a tentar testar no programador. Olha para lá novamente e presta atenção à forma como as diferentes funções recebem os seus argumentos e que consequências isso tem na sua execução.

Eu vi como os parâmetros foram passados, mas para mim não faz sentido declarar uma variável global para depois fazer aquele código!

Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Link to comment
Share on other sites

13 horas atrás, PsySc0rpi0n disse:

Eu vi como os parâmetros foram passados, mas para mim não faz sentido declarar uma variável global para depois fazer aquele código!

Como faria sentido para ti, então? 🙂 Relembro que o objectivo do exercício é perceber como a passagem de argumentos pode ter afectar o comportamento das variáveis locais a uma função, podendo as a alterações às mesmas reflectir-se (ou não) em variáveis externas (neste caso, globais).

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.