C 如何初始化结构并从函数调用以在main中显示
我想创建一个结构并在InitiateA中初始化它们,在DisplayA中打印并在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[]);
#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);
}
}