Combining Bubble and Selection Sort

I am receiving this error, how can I fix it.

ERROR:
1>payroll2.obj : error LNK2019: unresolved external symbol "int __cdecl swap(float * const,int,int)" (?swap@@YAHQAMHH@Z) referenced in function _main
1>C:\ESCFinal2\payroll2\Debug\payroll2.exe : fatal error LNK1120: 1 unresolved externals

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
      #include <iostream> 
      #include <fstream>      // file input output stream 
      using namespace std; 
	  
      // function prototypes 
      int  readalldata( long int[ ], int[ ], float[ ], const int );  
      void findovertimehours( int[ ], int[ ], int ); 
      void findovertimepay( int[ ], float[ ], float[ ], int );  
      void findregularhours( int[ ], int[ ], int ); 
      void findregularpay( int[ ], float[ ], float[ ], int ); 
      void findgrosspay( float[ ], float[ ], float[ ], int ); 
      void findtaxrate( float[ ], float[ ], int ); 
      void findtaxamount( float[ ], float[ ], float[ ], int ); 
      void findnetpay( float[ ], float[ ], float[ ], int ); 
      void printalldata( long int[ ], int[ ], float[ ], float[ ], float[ ], float[ ],float[ ], int ); 
      int swap (float [ ], int, int);

      void main( ){ 
            const int MAXSIZE = 100;          // for maximum of 100 employees 
       
            //declaration of variables 
            int n; 
            long int id[ MAXSIZE ];     
            int hoursworked[ MAXSIZE ], overtimehours[ MAXSIZE ]; 
            int regularhours[ MAXSIZE ]; 
            float hourlyrate[ MAXSIZE ], regularpay[ MAXSIZE ];  
            float overtimepay[ MAXSIZE ], grosspay[ MAXSIZE ]; 
            float taxrate[ MAXSIZE ],  taxamount[ MAXSIZE ],netpay[ MAXSIZE] ; 
       
             //functions calls     
            n = readalldata( id, hoursworked, hourlyrate, MAXSIZE );  // get all data  
            findovertimehours( hoursworked, overtimehours, n ); 
            findovertimepay( overtimehours, hourlyrate, overtimepay, n ); 
            findregularhours( hoursworked, regularhours, n  ); 
            findregularpay( regularhours, regularpay, hourlyrate, n ); 
            findgrosspay( regularpay, overtimepay, grosspay, n );  
            findtaxrate( grosspay, taxrate, n ); 
            findtaxamount( grosspay, taxamount, taxrate, n ); 
            findnetpay( grosspay, netpay, taxamount, n ); 
            printalldata( id, hoursworked, hourlyrate, overtimepay, 
                               grosspay, taxamount, netpay, n ); 
			

			//SORT CODE
			int i, j; 
            int lower, upper, sortflag, sml;
            lower=0;
            upper=n-1;
         sortflag=1;
         while((lower<upper)&&(sortflag==1)){
                    sml=lower;
                    sortflag=0;
                    j=lower+1;
                    while(j<=upper-lower){
                                if(netpay[j]>netpay[j+1]){
									        swap(netpay,j,j+1);
                                            sortflag=1;
                                            if(netpay[j]<netpay[sml]) sml=j;                                
                                            }//IF
                                j++;
                                }//WHILE
          swap(netpay,lower,sml);
          upper=upper-1;
          lower=lower+1;
        }//WHILE
            cout << "SORTED DATA" << endl; 
            for( i = 0 ; i < n ; i++ ){ 
                 cout << netpay[ i ] << "  " ;  
            }// FOR 

	  system ("pause");
      }//MAIN
	  int swap(int netpay[], int i,int j){
        int temp;
        temp=netpay[i];
        netpay[i]=netpay[j];
        netpay[j]=temp;
        return 0;    
  }//SWAP


      int readalldata( long int id[ ], int hoursworked[ ], float hourlyrate[ ], int n ){ 
            ifstream fin( "payroll.txt" ); 
            n = 0; 
       
            while( fin >> id[ n ] >> hoursworked[ n ] >> hourlyrate[ n ] )  n++; 
       
            fin.close( ); 
            return n; 
      }//READALLDATA 
       
      void findovertimehours( int hoursworked[ ], int overtimehours[ ], int n ){ 
            for( int i = 0 ; i < n ; i++){ 
                 if( hoursworked[ i ] > 40 ) overtimehours[ i ] = hoursworked[ i ] - 40; 
                 else overtimehours[ i ] = 0; 
            }//FOR 
      }//FINDOVERTIMEHOURS 
       
      void findovertimepay( int overtimehours[ ], float hourlyrate[ ],  
            float overtimepay[ ], int n ){ 
            for( int i = 0 ; i < n ; i++){ 
                 overtimepay[ i ] = overtimehours[ i ] * hourlyrate[ i ] * 1.5; 
            }//FOR 
      }//FINDOVERTIMEPAY 
       
      void findregularhours( int hoursworked[ ], int regularhours[ ], int n ){ 
            for( int i = 0 ; i < n ; i++){ 
                 if( hoursworked[ i ] > 40 ) regularhours[ i ] = 40; 
                 else   regularhours[ i ] = hoursworked[ i ]; 
            }//FOR 
      }//FINDREGULARHOURS 
       
      void findregularpay( int regularhours[ ], float regularpay[ ],  
                                        float hourlyrate[ ], int n ){ 
           for( int i = 0 ; i < n ; i++ ){ 
                 regularpay[ i ] = regularhours[ i ] * hourlyrate[ i ]; 
            }//FOR 
      }//FINDREGULARPAY
       void findgrosspay( float regularpay[ ], float overtimepay[ ], 
                                     float grosspay[ ],int n ){ 
                 for( int i = 0 ; i < n ; i++){ 
                      grosspay[ i ] = regularpay[ i ] + overtimepay[ i ];    
                 }//FOR 
            }//FINDGROSSPAY 
       
            void findtaxrate( float grosspay[ ], float taxrate[ ], int n ){ 
                 for( int i = 0 ; i < n ; i++){ 
                      if( grosspay[ i ] > 4000.00 ) taxrate[ i ] = 0.40; 
                      else if(grosspay[ i ] > 3000.00 ) taxrate[ i ] = 0.30; 
                      else if(grosspay[ i ] > 1000.00 ) taxrate[ i ] = 0.20; 
                      else taxrate[ i ] = 0.10; 
                 }//FOR 
            }//FINDTAXRATE 
       
            void findtaxamount( float grosspay[ ], float taxamount[ ],  
                                           float taxrate[ ], int n ){ 
                 for( int i = 0 ; i < n ; i++){ 
                      taxamount[ i ] = grosspay[ i ] * taxrate[ i ]; 
           }//FOR 
      }//FINDTAXAMOUNT 
      
     void findnetpay( float grosspay[ ], float netpay[ ], float taxamount[ ], int n){ 
          for( int i = 0 ; i < n ; i++){ 
               netpay[ i ] = grosspay[ i ] - taxamount[ i ]; 
          }//FOR 
     }//FINDNETPAY 
      
     void printalldata( long int id[ ], int hoursworked[ ], float hourlyrate[ ], 
                                float overtimepay[ ], float grosspay[ ], float  taxamount[ ],  
                                float netpay[ ], int n ){ 
         cout << "EMP ID" << "\t" << "HOURS" << "\t" << "RATE " << "\t "  
                 << "OVERPAY " << "\t" << "GROSSPAY" << "\t" << "TAX  "<< "\t"  
                 << "  NETPAY  " << endl; 
        for( int i = 0 ; i < n; i++){ 
             cout << " " << id[ i ] << "\t " << hoursworked[ i ] << "\t"<<hourlyrate[ i ]  
                       << "\t " << overtimepay[ i ] << "\t\t"  << grosspay[ i ] << "\t\t"  
                       << taxamount[ i ] << "\t " << netpay[ i ] << endl; 
          }//FOR 
     }//PRINTALLDATA 
     // end source code
int swap(int netpay[], int i,int j){ does not match int swap (float [ ], int, int);
Thank you, I fixed it.
Topic archived. No new replies allowed.