1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda em C

Discussão em 'Programação' iniciada por TranT, 11 de Fevereiro de 2008. (Respostas: 9; Visualizações: 929)

  1. Th uma cadeira onde preciso d programar em C apesar d so sabr Java lol xD

    Código:
    /*Quadrado*/
    
    #include <stdio.h>
    
    int nsomas=0;
    
    
    int main(void)
    {
     unsigned int n;
     int i;
     double res=0;
     printf("Introduza um número: ");
     scanf("%u",&n);
     
    
     
     printf("n  |  n^2  | N_somas\n");
    
     for(i=0; i < n ; i++)
     {
       res=quadrado(n);
       printf("%u %lf %d\n",i,res,nsomas);
       nsomas=0;
     }
    
     return 0;
    } 
    
    
    double quadrado(unsigned int n)
    {
     double impar=1;
     int i;
    
     for(i = 0 ; i< n ; i++)
     {
      impar=impar+2;
      nsomas++;
     }
    
     return impar;
    }
    ao compilar (no ubunto) deu me estes erros e nao sei resolver isto :S

    fibonacci.c:33: error: conflicting types for ‘quadrado’
    fibonacci.c:21: error: previous implicit declaration of ‘quadrado' was here
     
    Última edição pelo moderador: 13 de Fevereiro de 2008
  2. Morais

    Morais Power Member

    Nunca metas uma função depois do inicio do programa.

    Se trocares a função de lugar vais notar uma coisa interessante.
     
  3. Baderous

    Baderous Banido

    Se calhar bastava colocar o cabeçalho da função quadrado antes da main...
     
  4. Nody

    Nody Power Member

    protótipos de funções - antes da main
    funções - depois da main
     
  5. Baderous

    Baderous Banido

    A 1ª opção sim. A 2ª é só para quem quiser.
     
  6. Nody

    Nody Power Member

    sim :P tava apenas a vender o meu peixe! depende do estilo de programação de cada um.
     
  7. j.c.

    j.c. Power Member

    ja agora se queres uma programação correcta tira a variável global (nsomas). estas só devem ser usadas em casos muito especiais e muito raramente.

    muda isso para ela ser criada no main e passa-a como argumento para a função quadrado. (atenção que tens que mandar como argumento o endereço da variável e não a própria, se não o valor so é possível ser alterado no main)
     
  8. Sumerset

    Sumerset Power Member

    Podes fazer das 2 formas. Torna-se mais inteligivel para quem vai ler o código ter a declaração da classe, atributos, funções e métodos por esta ordem. No fim colocar o programa.
     
  9. j.c.

    j.c. Power Member

    é uma questão de gosto. eu normalmente tenho os prototipos das funçoes, o main, as funçoes. se precisar de definir atributos (typedef) ou estruturas (struct) posso por antes dos protipos ou entao juntar isso com os prototipos e por num ficheiro .h.
    tudo depende do tamanho do codigo.
     

Partilhar esta Página