Ir ao conteúdo

C,preencher vetor de struct


Ir à solução Resolvido por Liliane Barboza,

Posts recomendados

Postado
Estou tentando referenciar pelo índice, ex. guardar valor 2 na posição 0.mas não funciona.

 

#include<stdio.h>

typedef struct

{

int qto;

float valor;

}tapto;

 

int main (void)

{

int i;

tapto a [6];

 

 

for (i=0;i<6;i++)

{

 

if (a.qto ==0  || a.qto ==3)

 

{

a.qto = 2;

a.valor=280;

   }

   

   if (a.qto ==1  || a.qto ==4)

 

{

a.qto = 3;

a.valor=375;

   }

   

   if (a.qto ==2  || a.qto ==5)

 

{

a.qto = 1;

a.valor=225;

   }

   

   

}

 

for(i=0;i<6;i++)

{

 

printf("%d \n", a.qto);

printf("%.2f \n", a.valor);

    }

    

return 0;

}

  • Membro VIP
Postado

@Liliane Barboza

Use tag code para organizar o código e as indentações.

 

Assim:

#include<stdio.h>typedef struct{int qto;float valor;}tapto; int main (void){ int i; tapto a [6];   for (i=0;i<6;i++) {     if (a[i].qto ==0  || a[i].qto ==3)     {        a[i].qto = 2;        a[i].valor = 280;     }     if (a[i].qto ==1  || a[i].qto ==4)     {        a[i].qto = 3;        a[i].valor=375;     }     if (a[i].qto ==2  || a[i].qto ==5)     {        a[i].qto = 1;        a[i].valor=225;     } } for(i=0;i<6;i++) {                 printf("%d \n", a[i].qto);                 printf("%.2f \n", a[i].valor); }   return 0;}

Sobre os problemas:

 

1 - Você precisa definir um valor inicial dos quartos de cada posição a fim de que seu teste do primeiro for funcione. Senão ele só vai ver uma variável "vazia".

2 - Esses if um atrás do outro vão atrapalhar demais.

O primeiro if diz que se o número do quarto for 0 ou 3 ele tem que virar 2.

Aí ele cai novamente lá no 3º if e vai virar 3 novamente.

Ou você usa um if..else ou usa um switch..case com break. Isso impede do mesmo valor ser testado em todos os casos.

 

Conserte esses itens e teste novamente.

Visitante
Este tópico está impedido de receber novas respostas.

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