構造体型から 2 つの値を取得して比較する関数を作成するように求められました。それらが等しい場合、それらの構造から他の 2 つの値を追加し、これを別の構造に送信するよう求めています。また、関数名を介して 1 または 0 を返すことになっているため、関数を int として定義しました。
私は、従業員の社会保障番号とその賃金、そして別の従業員の ssn と賃金を取得するプログラムを作成しようとしました。ソーシャルが同じである場合、2 つの賃金を結合し、その従業員の合計賃金を含む別の構造に送信します。
関数比較について言及するたびにエラーが発生します。これは、関数の引数によるものと思われます。どうすればこれを適切に行うことができますか?
#include <stdio.h>
#include <stdlib.h>
#define EMPLOYEE_COUNT 4
struct ewage
{
int ssn;
int wage;
}
struct record
{
int totalwage;
}
int compare(struct ewage s1, struct ewage s2, struct record *r);
int main (void)
{
struct ewage e[EMPLOYEE_COUNT];
struct record r[EMPLOYEE_COUNT];
int i, j;
for (i = 0; i < EMPLOYEE_COUNT; i ++)
{
for (j = i + 1; j < EMPLOYEE_COUNT; j ++)
{
int success = compare(e[i], e[j], &record[i]);
if (success == 1)
printf ("%d / %d | Record: %d \n", i, j, record[i]);
else
printf ("%d / %d | DOES NOT MATCH \n", i, j);
}
}
system ("PAUSE");
return 0;
}
int compare(struct ewage s1, struct ewage s2, struct record *r)
{
if (s1.ssn == s2.ssn)
{
r->totalwage = s1.wage + s2.wage;
return 1;
}
return 0;
}