问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言结构体数组 的输入方式22

发布网友 发布时间:2023-10-17 22:08

我来回答

5个回答

热心网友 时间:2023-11-11 22:29

C

语言中,结构体(struct)是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。

结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。

定义与声明

结构体的定义如下所示,struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。

在实际应用中,C语言结构体数组常被用来表示一个拥有相同数据结构的群体,比如一个班的学生、一个车间的职工等。

在C语言中,定义结构体数组和定义结构体变量的方式类似;

例:

struct stu{

char*name;//姓名

int num;//学号

int age;//年龄

char group;//所在小组

float score;//成绩

}class[5];

表示一个班级有5个学生。

扩展资料:

结构体数组的引用与引用一个结构体变量在原理上是一样的。只不过结构体数组中有多个结构体变量,我们只需利用for循环一个一个地使用结构体数组中的元素。

下面编写一个程序,编程要求:从键盘输入5个学生的基本信息,如姓名、年龄、性别、学号,然后将学号最大的学生的基本信息输出到屏幕。

#include<stdio.h>

#include<string.h>

struct STU

{

char name[20];

int age;

char sex;

char num[20];

};

void OutputSTU(struct STU stu[5]);

//函数声明,该函数的功能是输出学号最大的学生信息

int main(void)

{

int i;

struct STU stu[5];

for(i=0;i<5;++i)

{

printf("请输入第%d个学生的信息:",i+1);

scanf("%s%d%c%s",

stu<i>.name,

&stu<i>

.age,&stu<i>

.sex,stu<

i>.num);/*%c

前面要加空格,不然输入时会将空格赋给%c*/

}

OutputSTU(stu);

return 0;

}

void OutputSTU(struct STU stu[5])

{

struct STU stumax=stu[0];

int j;

for(j=1;j<5;++j)

{

if(strcmp(stumax.num,stu[j]

.num)<0)//strcmp函数的使用

{

stumax=stu[j];

}

}

printf("学生姓名:%s学生年龄:%d学生性别:%c学生学号:

%s\n",stumax.name,

stumax.age,stumax.

sex,stumax.num);

}

输出结果是:

请输入第1个学生的信息:小红22 F Z1207031

请输入第2个学生的信息:小明21 M Z1207035

请输入第3个学生的信息:小七23 F Z1207022

请输入第4个学生的信息:小欣20 F Z1207015

请输入第5个学生的信息:小天19 M Z1207024

学生姓名:小明学生年龄:21学生性别:M学生学号:Z1207035

参考资料:

百度百科——结构体

热心网友 时间:2023-11-11 22:29

输入方式:

scanf("%d%s%d%d%d",&student[i].key,student[i].name,&student[i].birthday.year,&student[i].birthday.month,&student[i].birthday.day);一次输入了5个数据for(i=0;i<size;i++)循环两次2*5=10。

C语言中,结构体(struct)是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。

结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。

结构体作用

结构体和其他类型基础数据类型一样,例如int类型、char类型,只不过结构体可以做成你想要的数据类型。以方便日后的使用。在实际项目中,结构体是大量存在的。研发人员常使用结构体来封装一些属性来组成新的类型。由于C语言内部程序比较简单,研发人员通常使用结构体创造新的“属性”,其目的是简化运算。

结构体在函数中的作用不是简便,其最主要的作用就是封装。封装的好处就是可以再次利用。让使用者不必关心这个是什么,只要根据定义使用就可以了。

以上内容参考:百度百科-结构体

热心网友 时间:2023-11-11 22:30

scanf("%d%s%d%d%d 

",&student[i].key,student[i].name,&student[i].birthday.year,&student[i].birthday.month

,&student[i].birthday.day);


一次输入了5个数据


for(i=0;i<size;i++)

循环两次


2*5=10

所以你只要输入10个数据就可以,不管你怎么输入,具体情况请看图片:


追问谢谢 我找到了 问题 就是 我最后一个%d后面多了一个空格 但是 为什么 我多了这么一个空格就要 输入15个数据呢 好奇怪啊 您能够解释一下吗?

热心网友 时间:2023-11-11 22:30

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;i<5;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;i<5;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]);
}

热心网友 时间:2023-11-11 22:31

没找到,在我这是输入两次

#include<stdio.h>
#include<conio.h>
#define size 2 //定义结构体的长度
int main()
{
int i;
struct Date{ //定义日期结构;
int year; //年
int month; //月
int day; //日
};

struct Student
{
int key; //学号
char name[10];//姓名
struct Date birthday; //生日 属于日期结构体
};
struct Student student[size]; //要求输入的十个学生
printf("学号\t姓名\t生日\n");
for(i=0;i<size;i++)
{
printf("输入学号,姓名,生日(年,月,日) :");
scanf("%d%s%d%d%d",&student[i].key,student[i].name,&student[i].b\
irthday.year,&student[i].birthday.month,&student[i].birthday.day);
}
printf("输入完成\n");
getch();
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音弹幕怎么关掉?怎么关闭抖音弹幕? 惠普LaserJet P3005D是否支持B5纸的双面打印? word打印出图片总是缺一部分怎么办-word打印图片不完整怎么解决_百度... 理想one哪里产的车辆? 抚州抚州ONE在哪里? one地址在哪里? 如何在图片上写字(如何在图片上添加文字) 网商贷为什么钱没到账 高级经济师职称怎么评 高级经济师需要评审吗 新车三保多少公里?2 vivox50的OTG为什么不能用? 电动车充电费电吗98 女朋友问你有多爱她怎么回答? 六盘水开车到石河子高原湖泊经过哪些地方 假如亲人在国外汇外币到我的账户,我到银行办理外币结汇成人民币... 哪位知道液晶电视机一天耗电量是多少4 65寸液晶电视耗电量55 都江堰去石河子高原湖泊路线规划 C语言编程这个题怎么写求答案,最好有一些简单的注释1 水电安装预留预埋需要做什么资料?完整详细的资料? 急需, 拜托了各位 求助一个C语言结构体数组赋初值的问题4 骁龙835重启怎么回事 法语的TEF、TCF的考试成绩在哪里能查到啊~~我是2008年考的啊~~不知道... 65寸电视耗电量多少17 汽车第3次保养要多少公里???220 有一首英文歌,里面有句歌词是这样的:“I love to b...13 怎样理解瞿秋白绝笔诗《偶成》2 歌颂革命英雄诗歌朗诵稿6 石河子到五家渠多少公里 我想考武汉大学的法语研究生,请问有哪些参考书目推荐呢?谢谢啦!_百度... 那个好象QQ界面的工具箱叫什么?1 电视机耗电量是多少?16 一般小学家教是如何计费的?比如说一小时多少钱.2 vivo x5如何使用OTG功能?14 几时因卖药的下一句是什么 qq会员家用24件套工具箱都有什么8 什么工具箱可以隐藏微爱和QQ软件有没有8 求k高清生肉下载急用急用!!!3 小米6重启问题什么时候解决 求动漫《k》高清无字幕版下载13 Love To Be Loved By You 的中文翻译622 关于结构体数组类型的赋值,我写了如下程序 ,请问为啥不对啊:1 悠婷延禧绒是什么材质的布料 流动拍照超速违章能去交警部门调录像吗?问题是它们调出来的照片...8 在PS中将抠出的章子用移动键移动不到另外文件上去,该怎么办,请高手指导... 1月20号的火车票什么时候可以买3 有一首中文歌曲跟这首英文歌很像Johnny B 是个男的唱的...1 汽车厂家三保多少公里和时间? 法国足球著名的教练有哪些7