1
Hello, I’m starting programming in c++ and I decided to do a struct to learn and such... except that the compiler shows no error and at the end the program shows me a completely meaningless value,I mean, while the expected value for "maiorprec" is 7 the program shows me 1878038440. I wanted the help of some charitable soul because I was banging my head for a long time and I couldn’t find the reason.
#include<iostream>
#include<cstdlib>
using namespace std;
struct Apart{
int preco; // variáveis utilizadas no código
string nome;
string local;
int quartos;
int area;
float pedireito;
bool mobilhado;
int tamprec,tamnome,tamarea; // aramazenam o numero de algarismos (ou letras) de preco nome e local
void insere(int precoin,string nomein,string localin,int quartosin,int areain,float pedireitoin,bool mobilhadoin){
precoin=preco;
nomein=nome;
localin=local;
quartosin=quartos; // função utilizada para armazenar os valores mais facilmente
areain=area;
pedireitoin=pedireito;
mobilhadoin=mobilhado;
}
void tamanho(){
while(preco){
preco=preco/10;
tamprec++;
} // conseguindo e aramazenando o numero de algarismos em tamprec tamarea e tamnome
while(area){
area=area/10;
tamarea++;
}
while(nome[tamnome]!='/0'){
tamnome++;
}
}
};
int main(){
int qtap=5; //quantidade de aparttamentos
Apart ap[qtap];
ap[0].insere(1000000,"tremenda","goiania",3,300,3.5,1);
ap[1].insere(2000000,"rosas","sao paulo",4,500,4,0);
ap[2].insere(150000,"tricola","fortaleza",2,275,2,1); // inserindo os valores
ap[3].insere(300000,"art4","palmas",4,290,2.5,0);
ap[4].insere(40000,"aurelia","rio de janeiro",1,100,2,1);
for(int i;i<qtap;i++){ap[i].tamanho();} // chamando a funçao tamanho para cada objeto
int maioprec=ap[0].tamprec;
int maioarea=ap[0].tamarea;
int maionome=ap[0].tamnome;
for(int i=1;i<qtap;i++){ // comparando os valores de tamprec e imprimindo o maior deles
if(maioprec<ap[i].tamprec){
maioprec=ap[i].tamprec;
}
}
cout<<maioprec; // porém eu acabo com um valor completamente sem sentido, alguém sabe o por quê?
}
NOTE: I used dev-c++ and code Blocks (nsei, maybe it has something to do)