结构体数组怎么做函数参数

结构体数组怎么做函数参数,第1张

括号中加入STUDENT gh[]
首先要在主函数前定义void Label(STUDENT [])但在STUDENT 定义之后
引用时Label(student) student本身就是地址 这是数组结构体的性质
此时引用的是首地址,可在引用后对地址进行j=0循环加1到下一个结构体进行 *** 作,如gh[j]

int Grade1(Students test[])
{
int b=0;
for(int i=0;i<10;i++)
{
if((test[i]ChineseSocre>=90)&(test[i]ChineseSocre<=100)) //数学、英语只需改这里的ChineseSocre为相应的成绩变量就可以了
b=b+1;
}
return b;
}
cout << Grade1(test) <<endl ;
仿照以上代码写Grade2() Grade3()来输出数学和英语成绩

取决于文件中数据的存储方式。
1 如果文件中存储的方式为二进制形式数据:
需要使用fread(C语言风格)或ifsteam的read成员函数(C++风格。)从文件中读取结构体数据到对应的结构体指针上。

struct test
{
int a;
};
struct test t;
fread(&t, 1,sizeof(t), fp);

fileread(&t, sizeof(t));
2 如果文件中,是以文本方式存储的可读的结构体数据:
需要根据文件中数据的存储格式,通过fscanf(C语言风格)或ifstream的>>成员函数,读取各个值到对应的结构体成员变量中。
如 struct test t;
fscanf(fp, "%d",&ta);

file>>ta;

结构体的定义应该放在函数外面

#include "stdafxh"
#include <stdioh>
struct sort
{
    double dec;
    int s,t;
};
void creat( struct sort savesort[])
{
  printf("______________________");
}
int main(int argc, char argv[])
{
      struct sort savesort[6]; 
 creat(savesort);
return 0;
}

变量名结构体元素,例如struct student{int age;int number;},这是结构体类型,然后定义变量数组struct student sr[10],如果要调用数组第一个元素中的年龄,sr[0]age就可以了

/按照你的要求,结构体数组,能输入数组元素,并有函数能删除记录/
/已经测试过,正确运行。希望能帮助你/
#include
<stdioh>
/最大数组长度/
#define
REC
10
/
结构体/
typedef
struct
sqlist
{
int
data;
//数据
struct
sqlist
next;
}
Sqlist;
/数据输入/
void
input(Sqlist
s[],int
n)
{
int
i=0;
printf("请输入记录个数\n");
scanf("%d",n);
printf("请输入%d个数据\n",n);
for(i=0;i<n;i++)
{
scanf("%d",&s[i]data);
}
printf("数据输入完毕\n");
}
/数据输出/
void
print(Sqlist
s[],int
n)
{
int
i;
for(i=0;i<n;i++)
printf("%d
",s[i]);
printf("\n");
}
/删除记录/
void
dele(Sqlist
s[],int
n,int
data)
{
int
i;
for(i=0;
i<n;
i++)
if(data==s[i]data)
break;
if(i==n)
{printf("没找到相应记录\n");return;}
for(;i<n;i++)
s[i]=s[i+1];
(n)--;
printf("删除成功\n");
}
void
main()
{
Sqlist
sq[REC];
int
data;
int
len=0;
//数组实际长度
input(sq,&len);
print(sq,len);
printf("请输入要删除的数据\n");
scanf("%d",&data);
dele(sq,&len,data);
print(sq,len);
}

这个函数这样定义就可以了:
void xs(student ptr,int num);//其中ptr为一个指向student的指针,num为元素的个数。
调用该函数的语句为
xs(a,30);
//xs()函数
void xs(student ptr,int num)
{
for(int i=0;i<num;++i)
{
ptr[i]xh=10;//在这个循环里面就可以进行 *** 作了,ptr与a *** 作同一块内存。
}
}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/10540285.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-09
下一篇2023-05-09

发表评论

登录后才能评论

评论列表(0条)

    保存