struct not working

not working...
struct is not reading

//------------------------------------------------------------------------------
//Inclusao das bibliotecas
//------------------------------------------------------------------------------
#include <stdio.h>
#include <iostream>
#include <string.h>

//------------------------------------------------------------------------------
//Declaracao das Variaveis Globais
//------------------------------------------------------------------------------
int erro;
FILE *txt;
FILE *out;

struct SE_P1_2012_2 //struct estatica para os dados
{
int peso, beneficio;
int relacaoBP;
char nome[12];
}pessoa[7];

struct SE_P1_2012_2 //struct dinamica para os dados
{
int peso;
int beneficio;
float relacaoBP;
char nome[12];
struct SE_P1_2012_2 *prox; //ponteiro para a proxima entrada
}pessoa;


//------------------------------------------------------------------------------
//Declaracao das Funcoes
//------------------------------------------------------------------------------
int menu();
void leitura_P1_2012_2();
void insertionsort_P1_2012_2();
void impressao_P1_2012_2();


//Programa Principal

int main()
{
int escolha;
do{
escolha=menu();
switch (escolha)
{
case 1:
leitura_P1_2012_2();
insertionsort_P1_2012_2();
impressao_P1_2012_2();
break;
}
}while(escolha);
return 0;
}

//menu: menu de escolha

int menu()
{
int choice;
do{
cout<<"\n-------------------\n";
cout<<"1- P1 - 2012/2\n";
cout<<"0- Sair.\n";
cout<<"-------------------\n";
cin>>choice;
}while(choice<0||choice>1);
return choice;
}

//--------------------------------------------------------------------
//Funcao leitura_P1_2012_2(): Faz a leitura do arquivo programa08_entrada01.txt
//--------------------------------------------------------------------
void leitura_P1_2012_2()
{
txt= fopen("programa08_entrada01.txt", "r");
if (!txt)
printf("\n\nArquivo programa08_entrada01.txt nao pode ser aberto.\n");

for (int i=0; i<7; i++)
{
erro= fscanf(txt, "%s\t%f\t%f\n", pessoa[i].nome, &pessoa[i].peso, &pessoa[i].beneficio);
pessoa[i].relacaoBP= pessoa[i].beneficio/pessoa[i].peso;
if (erro!=3)
printf("\n\nErro na leitura dos dados do arquivo programa08_entrada01.txt.\n");
}

printf( "\nArquivo programa08_entrada01.txt lido com sucesso.\n");
fclose(txt);
//for (int i=0; i<7; i++)
// printf("%s\t%.0f\t%.0f\t%f\n", pessoa[i].nome, pessoa[i].peso, pessoa[i].beneficio, pessoa[i].relacaoBP);
}

//------------------------------------------------------------------------------
//Funcao insertionsort
//------------------------------------------------------------------------------
void insertionsort_P1_2012_2()
{
int n, i, found;
float aux, x;
char auxchar[12];

n= 8;
for(int k=0; k<n-1; k++)
{
x= pessoa[k].relacaoBP;
i= k-1;
found= 0;
while ((!found)&&(i>=0))
if(pessoa[i].relacaoBP<x)
{
aux= pessoa[i].peso;
pessoa[i].peso= pessoa[i+1].peso;
pessoa[i+1].peso= aux;

aux= pessoa[i].beneficio;
pessoa[i].beneficio= pessoa[i+1].beneficio;
pessoa[i+1].beneficio= aux;

aux= pessoa[i].relacaoBP;
pessoa[i].relacaoBP= pessoa[i+1].relacaoBP;
pessoa[i+1].relacaoBP= aux;

strcpy(auxchar,pessoa[i].nome);
strcpy(pessoa[i].nome,pessoa[i+1].nome);
strcpy(pessoa[i+1].nome,auxchar);

i= i-1;
}else
found= 1;
}
for (int i=0; i<7; i++)
printf("%s\t%.0f\t%.0f\t%f\n", pessoa[i].nome, pessoa[i].peso, pessoa[i].beneficio, pessoa[i].relacaoBP);
}

//--------------------------------------------------------------------
//Funcao impressao_P1_2012_2(): Imprime o arquivo programa08_saida01.txt
//--------------------------------------------------------------------
void impressao_P1_2012_2()
{
float capacidade= 250;
out= fopen("programa08_saida01.txt", "w");
if (!out)
printf("\n\nArquivo programa08_saida01.txt nao pode ser aberto.\n");
fprintf(out, "As pessoas que estarão dentro do barco salva vidas são:\n");
for (int i=0; i<7; i++)
if((capacidade-pessoa[i].peso)>=0)
{
fprintf(out,"%s\t%.0f\t%.0f\t%f\n", pessoa[i].nome, pessoa[i].peso, pessoa[i].beneficio, pessoa[i].relacaoBP);
capacidade-=pessoa[i].peso;
}
printf( "\nArquivo programa08_saida01.txt impresso com sucesso.\n");
fclose (out);
}
Last edited on
//---------------------------------------
//Biblioteca
//-----------------------------------
#include<stdio.h>
#include<iostream>

//---------------------------------------
//Constantes
//-----------------------------------
#define DB 31
#define MB 12
#define AB 2011
#define SB 7

//---------------------------------------
//Variaveis globais
//-----------------------------------
int dia, mes, ano, i, totaldias, ai;

//---------------------------------------
//funcoes
//-----------------------------------
void semana();
int passado();
int retornames(int i, int cont);
int retornadia(int cont);
int retornasemana(int dias);
int futuro();

//---------------------------------------
//Prog principal
//-----------------------------------
int main()
{
semana();
return 0;
}

//---------------------------------------
//funcao: semana --> retorna o porra do dia da semana
//-----------------------------------
void semana()
{

printf ("\n\ndigite a merda da data certo fdp:\n\n");
scanf ("%d/%d/%d", &dia, &mes, &ano);
if ((dia==29)&&(mes==2)&&((ano%4)!=0))
printf ("se fudeu!!! idiota!!! fdp!!! caralhooo\n\n");
else
if (ano<=AB)
totaldias = passado();
else
totaldias = futuro();
ai = retornasemana(totaldias);

}

//---------------------------------------
//funcao: passado --> numero de dias antes da data base
//-----------------------------------
int passado()
{
int cont=0;
for (i=AB;i>ano;i--)
{
if (i%4!=0)
cont += 365;
else
cont += 366;
}
//printf ("%d\n\n",cont);
for (i=MB;i>mes;i--)
cont = retornames(i, cont);

cont = retornadia(cont);
return cont;
}

//---------------------------------------
//funcao: futuro --> numero de dias antes da data base
//-----------------------------------
int futuro()
{
int cont=0;
for (i=(AB+1);i<ano;i++)
{
if (i%4!=0)
cont += 365;
else
cont += 366;
}
for (i=1;i<mes;i++)
cont = retornames(i, cont);
cont += dia;
return cont;
}

//---------------------------------------
//funcao: retornames --> numero de mes+dia antes da data base
//-----------------------------------
int retornames(int i, int cont)
{
switch(i)
{
case 1:
cont+=31;
break;
case 2:
if((ano%4)!=0)
cont+=28;
else
cont+=29;
break;
case 3:
cont+=31;
break;
case 4:
cont+=30;
break;
case 5:
cont+=31;
break;
case 6:
cont+=30;
break;
case 7:
cont+=31;
break;
case 8:
cont+=31;
break;
case 9:
cont+=30;
//printf ("%d\n\n",cont);
break;
case 10:
cont+=31;
//printf ("%d\n\n",cont);
break;
case 11:
cont+=30;
break;
case 12:
cont+=31;
break;
}
return cont;
}

//---------------------------------------
//funcao: retornadia --> numero de mes+dia antes da data base
//-----------------------------------
int retornadia(int cont)
{
switch(mes)
{
case 1:
cont+=(31-dia);
break;
case 2:
if((ano%4)!=0)
cont+=(28-dia);
else
cont+=(29-dia);
break;
case 3:
cont+=(31-dia);
break;
case 4:
cont+=(30-dia);
break;
case 5:
cont+=(31-dia);
break;
case 6:
cont+=(30-dia);
break;
case 7:
cont+=(31-dia);
break;
case 8:
cont+=(31-dia);
break;
case 9:
cont+=(30-dia);
break;
case 10:
cont+=(31-dia);
break;
case 11:
cont+=(30-dia);
break;
case 12:
cont+=(31-dia);
break;
}
return cont;
}

//---------------------------------------
//funcao: retornasemana --> fala qual dia da semana eh
//-----------------------------------
int retornasemana(int dias)
{
int aux;
aux = (dias%SB);
printf ("%d\n\n",dias);

if (ano<AB)
aux = SB - aux;
switch(aux)
{
case 0:
printf("sab\n\n");
break;
case 1:
printf("dom\n\n");
break;
case 2:
printf("seg\n\n");
break;
case 3:
printf("ter\n\n");
break;
case 4:
printf("qua\n\n");
break;
case 5:
printf("qui\n\n");
break;
case 6:
printf("sex\n\n");
break;
case 7:
printf("sab\n\n");
break;
}
}




//------------------------------
//Funcao bubblesort

void bubblesort(int A[MAX])
{
int pass, n, sorted, aux;

n= MAX;
pass= 1;
sorted= 0;//false
while((!sorted)&&(pass<n))
{
sorted= 1; //true
for(int i=0;i<=(n-pass-1);i++)
{
if(A[i]>A[i+1])
{
aux= A[i];
A[i]= A[i+1];
A[i+1]= aux;
sorted= 0;
}
}
pass++;
}
}

//--------------------------
//Funcao selectionsort

void selectionsort(int A[MAX])
{
int n, current, aux;

n= MAX+1;
for(int i=0; i<n-2; i++)
{
current= i;
for(int k=i+1; k<n-1; k++)
if(A[current]>A[k])
current= k;
aux= A[i];
A[i]= A[current];
A[current]= aux;
}
}

//---------------------------
//Funcao insertionsort

void insertionsort(int A[MAX])
{
int n, x, i, found, aux;

n= MAX+1;
for(int k=1; k<n-1; k++)
{
x= A[k];
i= k-1;
found= 0;
while ((!found)&&(i>=0))
if(A[i]>x)
{
aux= A[i];
A[i]= A[i+1];
A[i+1]= aux;
i= i-1;
}else
found= 1;
}
}

//---------------------
//Funcao shellsort

void shellsort(int A[MAX])
{
int n, k, j, found, aux;

n= MAX;
k= 1;
do
k= k*2+1;
while (k<=n);
do
{
k= k/2;
for(int i=k; i<=n-1; i++)
{
j= i-k;
found= 0;
while ((j>=0)&&(!found))
if(A[j]>A[j+k])
{
aux= A[j];
A[j]= A[j+k];
A[j+k]= aux;
i= j-k;
}else
found= 1;
}
}while (k!=1);
}

//------------------
//Funcao quicksort

void quicksort(int A[MAX], int p, int r)
{
int q;

if (p<r)
{
q= partition(A,p,r);
quicksort(A,p,q);
quicksort(A,(q+1),r);
}
}
//----------------
//Funcao partition

int partition(int A[MAX], int p, int r)
{
int i, j, piv, aux;

piv= A[p];
i= p-1;
j= r+1;
while (i<j)
{
do
j=j-1;
while(A[j]>piv);
do
i=i+1;
while(A[i]<piv);
if (i<j)
{
aux= A[j];
A[j]= A[i];
A[i]= aux;
}else
return j;
}
}

//----------------------
//Funcao quicksort
void quicksortB(int A[MAX], int esq, int dir)
{
int i, j, pivo, aux;

i= esq;
j= dir;
pivo= (esq+dir)/2;
pivo= A[pivo];

do
{
while((A[i] < pivo) && (i < dir))
i++;
while((A[j] > pivo) && (j > esq))
j--;
if (i <= j)
{
aux= A[i];
A[i]= A[j];
A[j]= aux;
i++;
j--;
}
} while( i <= j);
if (esq < j)
quicksort(A, esq, j);
if (i < dir)
quicksort(A, i, dir);
}

//--------------------
//Funcao mergesort

void mergesort(int A[MAX], int lo, int hi)
{
int mid, L, H;
int scratch[MAX];

if(lo<hi)
{
mid= (lo+hi)/2;
mergesort(A,lo,mid);
mergesort(A,mid+1,hi);
L= lo;
H= mid+1;
for(int k=lo;k<=hi;k++)
if((L<=mid)&&((H>hi)||(A[L]<A[H])))
{
scratch[k]= A[L];
L++;
}else
{
scratch[k]= A[H];
H++;
}
for(int k=lo;k<=hi;k++)
A[k]= scratch[k];
}
}

//------------------
//Funcao heapsort

void heapsort(int A[MAX])
{
int aux;

buildheap(A);
for (int k=MAX-1; k>=1; k--)
{
aux= A[0];
A[0]= A[k];
A[k]= aux;
heapsizeA--;
heapify(A,0);
}
}

//------------------------------------------------------------------------------
//Funcao buildheap

void buildheap(int A[MAX])
{
heapsizeA=MAX;
for (int j=(MAX/2)-1; j>=0; j--)
heapify(A,j);
}

//------------------------------------------------------------------------------
//Funcao heapify

void heapify(int A[MAX], int i)
{
int l, r, max, aux;

l= 2*i+1;
r= 2*i+2;
if((l<heapsizeA)&&(A[l]>A[i]))
max= l;
else
max= i;
if((r<heapsizeA)&&(A[r]>A[max]))
max= r;
if(max!=i)
{
aux= A[i];
A[i]= A[max];
A[max]= aux;
heapify(A,max);
}
}

//------------------------------------------------------------------------------
//Funcao oetranspositionsort

void oetranspositionsort(int A[MAX])
{
int sorted, j, aux, n;

n= MAX;
sorted= 0;
while(!sorted)
{
j= 0;
sorted= 1;
while(j+1<n)
{
if (A[j]>A[j+1])
{
aux= A[j];
A[j]= A[j+1];
A[j+1]= aux;
sorted= 0;
}
j= j+2;
}
j= 1;
while(j+1<n)
{
if (A[j]>A[j+1])
{
aux= A[j];
A[j]= A[j+1];
A[j+1]= aux;
sorted= 0;
}
j= j+2;
}
}
}
Last edited on
post your code!!!
Please move this to Beginners.
closed account (Dy7SLyTq)
and i believe you mean header file
Topic archived. No new replies allowed.