#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXN 50
void add (char codes [] [9], char names [][21], double salaries[], double allowances[], int *pn) {
if ((*pn)==MAXN) puts ("Array is full!!!");
else {
char id[9]; char emp[21];
int s; int a;
printf ("Adding a new employ code: ");
fflush (stdin);
scanf ("%8[^\n]", id);
printf ("Adding a new employee: ");
fflush (stdin);
scanf ("%20[^\n]", emp);
printf ("Enter the salary: ");
scanf ("%d", &s);
printf ("Enter the allowance: ");
scanf ("%d", &a);
strcpy (codes[*pn], id);
strcpy (names[*pn], emp);
salaries[*pn] =s; allowances[*pn] =a;
(*pn)++;
}
int find ( char code, char codes [] [9], int n ) {
int i;
for (i=0; i<n; i++) if (codes[i]==codes) return i;
}
void removeOne (int pos, char code[], char codes [] [9], char names [][21], double salaries[], double allowances[], int *pn ) {
if (pos<0 || pos >=*pn) return 0;
int i;
for (i=pos; i<*pn-1; i++) codes[i]==codes[i+1];
(*pn)--;
}
void sort (char codes [] [9], char names [][21], double salaries[], double allowances[], int n) {
int i, j;
for (i=0; i<n-1; i++)
for (j=n-1; j>i; j--) {
int cc= strcmp (codes[j], codes [j-1]);
int cn= strcmp (names[j], names [j-1]);
if (salaries[j] + allowances[j]< salaries[j-1] + allowances[j-1])
{
char c[9];
strcpy (c, codes[j]);
strcpy(codes [j], codes[j-1]);
strcpy(codes[j-1], c);
char m[21];
strcpy (m, names[j]);
strcpy(names [j], names[j-1]);
strcpy(names[j-1], m);
double sa = salaries[j];
salaries[j]= salaries[j-1];
salaries[j-1]=sa;
double al = allowances[j];
allowances[j]= allowances[j-1];
allowances[j-1]=al;
}
}
}
void print (char codes [] [9], char names [][21], double salaries[], double allowances[], int n) {
int i;
for (i=0; i<n; i++)
printf ("%-8s,%-20s, %10.2lf,%10.2lf\n", codes[i], names[i], salaries[i], allowances[i]);
}
int main () {
char code[MAXN] [9];
char names[MAXN][21];
double salaries[MAXN];
double allowances[MAXN];
int x;
int n=0;
int i=0;
printf ("The number of employee is: ");
scanf ("%d", &x);
for (i=1; i<=x; i++) add(codes, names, salaries, allowances, &n);
sort(codes, names, salaries, allowances, n);
print (codes, names, salaries, allowances, n);
system ("pause");
return 0;
}