Jump to content

problema com estruturas


suzy

Recommended Posts

? tenho o seguinte problema

🙂 Faça uma função que receba um vector de telemóveis com toda a informação preenchida, excepto o

total facturado com as vendas no final do ano. A função recebe também o número de telemóveis que se

encontra no vector.

A função deve preencher o campo relativo ao total facturado de todos os telemóveis do vector.

fiz assim.


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

struct telemovel{
        char modelo[20];
        float preco;
        int unidade[4];
        float total;
        };
        
void funcao( struct telemovel ptr[],int numerotelemoveis){
                        int i,soma=0,j;
                        float preco;
                        
                        for(i=0;i<numerotelemoveis;i++){
                           for(j=0;j<4;j++){
                           soma=soma+ ptr[i].unidade[j];
                           preco=soma*(ptr[i].preco);//soma do 1 vector
                           ptr[i].total=preco;
                                           }
                             }     
                        for(i=0;i<numerotelemoveis;i++){
                     
                        printf(" o modelo %s\n",ptr[i].modelo);
                        printf(" o preco e %f\n", ptr[i].preco);
                        printf(" o total facturado  e %f\n",ptr[i].total);
                        }
                        
                        
     }
main(){
struct telemovel vet[2]={{"motorola",15.0,{10,10,10,10}},{"nokia",15.0,{10,10,10,10}}};
funcao(vet,2);
fflush(stdin);
getchar();
}

acontece que no 2 estrutura com o modelo nokia a soma vem errada. como faço isto? de forma a obter o total de cada estrutura???

obrigada

Link to comment
Share on other sites

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

struct telemovel{
        char modelo[20];
        float preco;
        int unidade[4];
        float total;
        };
        
void funcao( struct telemovel ptr[],int numerotelemoveis){
                        int i,soma=0,j;
                        float preco;
                        
                        for(i=0;i<numerotelemoveis;i++){
                             soma=0; preco=0.0;
                           for(j=0;j<4;j++){
                           soma=soma+ ptr[i].unidade[j];
                           preco=soma*(ptr[i].preco);//soma do 1 vector
                           ptr[i].total=preco;
                                           }
                             }     
                        for(i=0;i<numerotelemoveis;i++){
                     
                        printf(" o modelo %s\n",ptr[i].modelo);
                        printf(" o preco e %f\n", ptr[i].preco);
                        printf(" o total facturado  e %f\n",ptr[i].total);
                        }
                        
                        
     }
main(){
struct telemovel vet[2]={{"motorola",15.0,{10,10,10,10}},{"nokia",15.0,{10,10,10,10}}};
funcao(vet,2);
fflush(stdin);
getchar();
}

experimenta assim a ver se e isto que tu queres e porque nao fazer isso com apontadores para nao teres que estar sempre a dizer qual e a dimensao maxima do array.

Link to comment
Share on other sites

Mais uma vez... ajudem, mas não dêem a papinha toda feita.

Alguém disse há muito tempo: "Se alguém tem fome e lhe deres de comer, ficará agradecido até ter fome de novo; se o ensinares a caçar, não voltará a ter fome..."

Ok ok, foi um bocado inventado, mas a ideia fundamental está lá 🙂

tb sou dessa opiniao mas se reparares ela ja tinha o codigo quase todo, a unica coisa que nao reparou foi que nao estava a fazer um reset dos valores a zero a quando da nova iteracao. foi a unica coisa que eu eu mostrei ja que toda a ideia esta la ...

Link to comment
Share on other sites

🙂 pois! , mas ainda nao esta correcto o programa, pois se repararem as duas estruturas (motorola e nokia tem valores iguais), logo tem de dar o mesmo resultado.

neste codigo a 1 estrutura da 300

e a 2 estrutura da 600

isto tem a haver com a variavel soma, acho que como esta feita vai somar todas as estruturas  🙂😁 😁 como faço para isto dar certo, tou farta de bater  :wallbash: 😁🙂

obrigada

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.