c语言函数内输入结构体 c语言函数输入结构体数组

C语言 用函数实现结构体的输入#includestdio.h
struct student//结构体在函数外部定义
{
int num;
char Class[20];
char name[40];
float music;
float art;
float math;
};
void in(struct student stu[],int n);//函数声明在函数外部,主函数向子函数传递stu、n,才能在子函数中使用stu、n
void ave(struct student stu);//函数声明在函数外部,求平均数程序整体有些错误 , 我给改了
void main()
{
struct student stu[100];//已经定义好的结构体全名是struct你定义的名字 , 鉴于内存有限,100的长度已经够用了
int n,i;
printf("输入人数\t");//增强互动性
while(scanf("%d",n)!=0)
{
in(stu,n);
for(i=0;in;i)
{
printf("%s ",stu[i].name);
ave(stu[i]);
}
}
}
void in(struct student stu[],int n)
{
int i;
printf("输入信息(学号,班级,姓名 , 音乐成绩,艺术成绩,数学成绩)\n");//增强互动性
for(i=0;in;i)
{
scanf("%d %s %s %f %f %f",stu[i].num,stu[i].Class,stu[i].name,stu[i].math,stu[i].music,stu[i].art);
}
}
void ave(struct student stu)
{
float average;
average=(stu.music stu.math stu.art)/3.000;
printf("%5.lf\n",average);
}
1、结构体,函数声明都在主函数外;
2、被调函数使用主调函数需要传值;
3、结构体名为struct定义名;
4、程序注意互动性 。
C语言结构体数组 的输入方式1、如果从标准输入中输入,只有挨个输入每个结构体对象的成员 。如果从文件输入,则可以用fread函数直接读入整个对象 。
2、例程:
#include stdio.h
struct student
{
int num;
char name;
int score[3];
};
void main()
{
void print(struct student);
struct student stu[5];
int i;
for(i=0;i5;i) //问题在%c前要一个空格,还有少了
{
scanf("%d %c%d%d%d",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
}
printf("输入完成\n");
for(i=0;i5;i)
print(stu[i]);
}
void print(struct student stu)
{
printf("%d%c%d%d%d\n",stu.num,stu.name,stu.score[0],stu.score[1],stu.score[2]);
}
C语言在一个函数里面定义了一个结构体,怎么在另外一个函数里面使用?在另外一个函数里面使用的源代码如下:
#include"stdio.h"
#include "conio.h" //-------添加这个头文件,因为getch()函数来自它,否则编译会有警告
struct student/*定义结构体*/
{
void main()
{
void data_in(struct student putin[]);
void data_out(struct student *p);
void data_pout(struct student *s1);
data_in(pers);/*调用指针输入函数*/
data_out(sp);/*调用指针输出函数*/
data_pout(sp);/*调用函数名输出函数*/
getch();
}
扩展资料
1、函数是C语言的基本组成元素 , 当我们调用一个函数时,需要明确函数名和实参列表 。实参列表中的参数可以是常量、变量、表达式或者空,并且各参数之间要使用英文逗号分隔开来 。
2、在C语言中,函数的定义是独立的,一个函数不能定义在另一个函数内部 。但在调用函数时,可以在一个函数中调用另一个函数 , 这就是函数的嵌套调用 。接下来我们通过一个案例来演示函数的嵌套调用 。
C语言可以对函数输入一个结构体吗可以的,不过传入的是改结构体的一个副本
如果需要在函数中更改结构体内容,可以把这个结构体的指针作为参数传入函数,返回的也是该结构体的指针
c语言结构体输入number是指针,指向常量字符串,输入的时候,改变的其实是number的空间 , 也就是出现了野指针,导致程序出错
修改方式很简单,把char*number,改成char number[100]就可以了
只改定义一处,其他的不需要改动
具体大小,取决于你的需求
【c语言函数内输入结构体 c语言函数输入结构体数组】关于c语言函数内输入结构体和c语言函数输入结构体数组的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读