Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何初始化结构并从函数调用以在main中显示_C_Data Structures - Fatal编程技术网

C 如何初始化结构并从函数调用以在main中显示

C 如何初始化结构并从函数调用以在main中显示,c,data-structures,C,Data Structures,我想创建一个结构并在InitiateA中初始化它们,在DisplayA中打印并在Main中调用它们。我试着这么做,但似乎什么都不管用 #include <string.h> struct Penalty{ // Provide structure definition for Penalty here double fine; char Identity[20]; int i; }; void InitiateA (struct Penalty data[]);

我想创建一个结构并在InitiateA中初始化它们,在DisplayA中打印并在Main中调用它们。我试着这么做,但似乎什么都不管用

#include <string.h>

struct Penalty{
  // Provide structure definition for Penalty here
  double fine;
  char Identity[20];
  int i;
};

void InitiateA (struct Penalty data[]);
void DisplayA (struct Penalty data[]);

int main(){

  struct Penalty rule[3];
  struct i;

  DisplayA(rule);

  rule[0].fine = 20.00;
  strcpy(rule[0].Identity, "Student" );

  rule[1].fine = 30.00;
  strcpy(rule[1].Identity , "Staff");

  rule[2].fine = 50.00;
  strcpy(rule[2].Identity , "Vendor");

  for(i=0;i<3;i++) {
    printf("%d%s",rule[i].fine,rule[i].Identity);
  }   

  return 0;
}

我做错了吗?

这是一个错误,在
InitiateA()
中:

你是说

printf("%d", data[i].Identity);
您不能引用变量
规则
,此时它不在范围内(它是
main()
中的一个本地变量)

您需要这样调用它,从
main()


我终于完成了,伙计们

#include <string.h>
#include <stdio.h>
struct Penalty{

double fine;
char Identity[20];
};

void InitiateA (struct Penalty data[]);
void DisplayA (struct Penalty data[]);


int main(){

struct Penalty rule[3];

InitiateA(rule);
DisplayA(rule);

system ("pause");

}

void InitiateA (struct Penalty data[]){
  data[0].fine = 20.00;
strcpy(data[0].Identity, "Student" );

data[1].fine = 30.00;
 strcpy(data[1].Identity , "Staff");

 data[2].fine = 50.00;
strcpy(data[2].Identity , "Vendor");

}

 void DisplayA (struct Penalty data[]){
  int i;
 for(i=0;i<3;i++){
 printf("%s %.2f \n",data[i].Identity, data[i].fine);
}
}
#包括
#包括
结构惩罚{
双倍罚款;
字符标识[20];
};
void InitiateA(结构惩罚数据[]);
void DisplayA(结构惩罚数据[]);
int main(){
结构惩罚规则[3];
启动(规则);
显示a(规则);
系统(“暂停”);
}
void InitiateA(结构惩罚数据[]){
数据[0],精细度=20.00;
strcpy(数据[0]。身份,“学生”);
数据[1],精细度=30.00;
strcpy(数据[1]。身份,“员工”);
数据[2],精细度=50.00;
strcpy(数据[2]。标识,“供应商”);
}
void DisplayA(结构惩罚数据[]){
int i;

对于(i=0;我不在void函数中编写return语句。
printf("%d", data[i].Identity);
InitiateA(rule);
#include <string.h>
#include <stdio.h>
struct Penalty{

double fine;
char Identity[20];
};

void InitiateA (struct Penalty data[]);
void DisplayA (struct Penalty data[]);


int main(){

struct Penalty rule[3];

InitiateA(rule);
DisplayA(rule);

system ("pause");

}

void InitiateA (struct Penalty data[]){
  data[0].fine = 20.00;
strcpy(data[0].Identity, "Student" );

data[1].fine = 30.00;
 strcpy(data[1].Identity , "Staff");

 data[2].fine = 50.00;
strcpy(data[2].Identity , "Vendor");

}

 void DisplayA (struct Penalty data[]){
  int i;
 for(i=0;i<3;i++){
 printf("%s %.2f \n",data[i].Identity, data[i].fine);
}
}