gpt4 book ai didi

C - 通过函数参数传递结构

转载 作者:行者123 更新时间:2023-11-30 17:44:45 27 4
gpt4 key购买 nike

我被要求编写一个函数,从结构类型中获取两个值并对它们进行比较。如果它们相等,它希望我添加这些结构中的另外两个值并将其发送到另一个结构。它还应该通过函数名称返回 1 或 0,因此我将函数定义为 int。

我试图编写一个程序,获取一名员工的社会安全号码和工资,然后获取另一名员工的社会安全号和工资。如果社会工资相同,它将合并两个工资并将它们发送到另一个包含该员工总工资的结构。

每次提到函数比较时我都会收到错误。这似乎是由于函数的参数造成的。如何才能正确完成此操作?

#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;
}

最佳答案

结构定义后需要分号

struct ewage
{
int ssn;
int wage;
}; // here

struct record
{
int totalwage;
}; // here

记录未定义,我假设它的真实名称是r

int success = compare(e[i], e[j], &r[i]); // here
if (success == 1)
printf ("%d / %d | Record: %d \n", i, j, &r[i]); // here

最后,您需要打印最后的%d,我在这里假设总工资:

printf ("%d / %d | Record: %d \n", i, j, r[i].totalwage); // here

现在您可以开始调试它......

关于C - 通过函数参数传递结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19870887/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com