• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

suzy

estruturas,somar valores de varias estruturas

8 mensagens neste tópico

:wallbash:

malta, tou com uma grande duvida!

é assim

tenho uma estrutura:



struct ponto{
        int x;
        int y;
        };

tenho um array de pontos( que nao e mais que um vector de estruturas), quero somar o valores x, da estrutra 1 com a estrutura 2

exemplo:

estrututa1    estrutura 2

x=1              x=2

y=2              y=9

o que eu quero é somar ambos os x;

tipo  x +x= 1+2 =3

fiz assim e claro da correcto



#include<stdio.h>

struct ponto{
        int x;
        int y;
        };
        
        
        
  // funcao soma que soma os valores x da 1 e 2 estrutura
  
        int soma(struct ponto array[],int tam){
              int i,j,soma=0;
             
                 soma=soma+(array[0].x)+(array[1].x);
                 
               
                 
                return soma;
               }      
        
        
        
main(){

struct ponto vet[2]={{1,2},{2,4}};
int x;
x=soma(vet,2);
printf(" a soma e %d\n",x);

}
           

o meu problema é! e se o meu vector tem por exemplo 100 estruturas ???

ja tou farta de tentar somar atraves de ciclos, mas da-me a soma dos valores todos, ou seja no array todo, nao soma a estrutra 1 com a estrutura 2, nem a estrutura dois coma estrutura 3 e assim sucessivamente.  :)

alguem me pode ajudar a esclarecer isto ?? :wallbash:

obrigada

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebi :S

Mas o que é que realmente queres somar ? Não é os X dos pontos todos ? Se não.. para que é o tamanho e o que desejas fazer realmente....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:)pois isso o tam e engano, e de  eu andar a tentar fazer mta vez  :wallbash:

o que eu quero e somar os valores x das 2 estruturas.

mas atraves de ciclos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

olá

tb tou a achar complic o teu probl

por ex:

tens

ponto1        ponto2          ponto3

x=1            x=4                  x=5

y=2            y=3                  x=6 ..

queres obter

soma1= ponto1.x+ponto2.x

soma2= ponto2.x+ponto3.x

soma3= ponto3.x+ponto4.x

...

é isto o q queres?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas para quê o ciclo ? Assim como está não está bem ? Não precisa de ciclo.... o máximo que podes fazer é passar por parâmetro por exemplo os índices das estruturas que queres somar por exemplo.. para n teres k afectar o valor lá dentro, assim vai como parâmetro e fica com maior liberdade, pois dá para somares quaisquer duas estruturas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiquei curioso... afinal qual é a solução para o que pretendes? ::)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ponto1        ponto2          ponto3

x=1             x=4                  x=5

y=2             y=3                   x=6 ..

queres obter

soma1= ponto1.x+ponto2.x

soma2= ponto2.x+ponto3.x

soma3= ponto3.x+ponto4.x

...

é isto o q queres?

olá de novo

se queres fazer isto  tens q criar um vector com N-1 posições e com ciclo vais fazer as somas.

do tipo:


typedef struct{
   int x;
   int y;
}ponto;

int main (int argc, char *argv[])
{
    int i; 
    ponto v [10];
    int soma[9];


  for (i=0; i<10;i++){
      v[i].x=i;
      v[i].y=i+1;  
      }
   
  for (i=0; i<9;i++)   
      soma[i] = v[i].x + v[i+1].x;
   
    for (i=0; i<9;i++)    
        printf("soma[%d]=%d\n", i ,  soma[i]);  

espero q isto ajude mesmo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora