Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
ola amigos, bom, dessa vez estou com um problema, o programa esta parando de funcionar e nao faço a menor ideia do que seja o problema.
Bom, deixa eu contar ao que se destina o programa.
Tenho varias entradas, onde na 1 linha é um nome, na 2 um salario tipo float, e na 3 a comissao.
o recebimento de dados acaba quando for achado a palavra FIM.
Depois tenho que organizar com o salario de maneira crescente, e o nome de cada funcionario que tem aquele respectivo salario
>
Salario no Mes: R$ 350.00- Pedro de Aparecida Francisco
Salario no Mes: R$ 1000.00- Arlette Castanheira- Wilson Rogerio
em fim, aqui esta meu codigo.
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <ctype.h>
#define nCOL 2
#define nLIN 1001
//struct funciona como vetor tbm, pode ser feito com: struct nome variavel = {CAMPO1, CAMPO2, CAMPO3}
int main(){
struct pagamentos{
char nome[1000];
float salario;
float comissao;
float salarioTotal;
char aux[1000];
};
//matrisNome[Linhas][COL];
//char vetor[1001];
//variaveis para o
int i,j,k,m;
int tamanho = 0;
float salarioBase = 0.0;
char vetor[1001];
struct pagamentos pg[100];
while(1){
k=0;
m=0;
//fgets(vetor, 1001, stdin);
//tamanho = strlen(pg.nome);
printf("Nome:");
fflush(stdin);
fgets(pg[k].nome, 1000, stdin);
printf("Salario: ");
scanf("%f", &pg[k].salario);
printf("comissao: ");
scanf("%f", &pg[k].comissao);
//aqui é pra arrumar o problema do \n no buffer que fica depois do scanf
getchar();
//if((tamanho >=3) && (pg.nome[0] == 70) && (pg.nome[1] == 73) && (pg.nome[2] == 77)){
//printf("Caractere achado FIM \n");
//break;
//}
pg[k].salarioTotal = pg[k].salario + pg[k].comissao;
//salarioBase = pg[i].salario + pg[i].comissao;
//printf("a%4.2fa", pg[k].salario + pg[k].comissao);
//------------Bubble sort do nome---------------//
for(i=0;i<1001;i++){
for(j=i+1;j<1001;j++){
if(strcmp(pg[j].nome, pg[i].nome)==-1){
strcpy(pg[i].aux, pg[i].nome);
strcpy(pg[i].nome, pg[j].nome);
strcpy(pg[j].nome, pg[i].aux);
}
}
}
/*para printar
printf("Strings ordenadas: \n");
for(i=0;i<10;i++){
printf("String %d: %s", i, vetor[i]);
}//-------------------------BUBBLE SORT------------------//
int l,c,u;
float temp;
for(l=0;l<60;l++){
for(u=0;u<60;u++){
if(pg[l].salarioTotal < pg[u].salarioTotal){
temp = pg[l].salarioTotal;
pg[l].salarioTotal = pg[u].salarioTotal;
pg[u].salarioTotal = temp;
}
}
}
/*//parte pra printar
for(i=0;i<4;i++){
printf("%d", vetor[i]);
}
*/m++;
k++;
}//while
//------Parte de printagem--------//
printf("Folha de Pagamento\n");
int q;
for(i=0;i<60;i++){
printf("Salario no Mes: R$ %4.2f", pg[i].salarioTotal);
printf("\n");
for(q=0;q<1001;q++){
printf("- %s", pg[q].nome);
printf("\n");
}
}
//------Fim parte da printagem------//
system("pause");
return 0;
}
espero que possao me ajudar, e se eu tiver feito algo errado, por gentileza me corrijam.
obrigado.
Carregando comentários...