简单的编程问题,c语言中,我定义了一个结构体数组,但结构体中的各个元素的类型是不同的,比如一个学生

简单的编程问题,c语言中,我定义了一个结构体数组,但结构体中的各个元素的类型是不同的,比如一个学生的名字,性别,成绩。结构体中的信息需要我逐一输入
问题:图中项目拓展部分,能回答几个就回答几个吧

1.输入完成后进行判断即可,如输入的学号是多少位如果不是12位则返回错误,然后再遍历学号(以字符进行输入)如果字符中不是数字返回错误等,或者以数字进行(格式控制)先判断输入函数返回是否正确
2.你确定是结构体数组而不是链表对吧,那么遍历这个数组与数组中相应元素(结构体)中的对应查询数据比对即可,打到后打印该元素内所有数据
3.删除可以在结构体中设置一个该元素是否被删除的标致,初始为未删除,删除时标记为删除即可,由于是数组,删除数组中元素需要将删除元素之后的所有元素向前移动一位会比较浪费时间
4.人数不确定则可以使用一个计数用来记录当前学生数量多少,如果下一个学生的添加超过了这个数量则动态添加数组长度,即使用动态数组
5.一般来说你输入的数据是存储在内存中的,程序一旦退出后程序所占资源被回收所以数据也就丢失了,为了数据不丢失可以将数据保存到一个能够永久保存数据库的外部存储设备比如保存到硬盘上,简单地说就是保存到文件里,程序启动时从文件里读取数据

一般这样的程序都是使用链表来做
当前使用数组也是可以的
之前我就有用结构体数组做过一个简单的学生管理系统
如果需要写代码的话
我可以有偿代劳追问

遍历怎么做

追答

就是遍历数组

从下标0开始一直到数组结尾

追问

等等,我给你看一下代码,你再给我说

我可以加分的

追答

嘛,我其实不要你分
要你分也没用其实。。。。。。

追问

后一张图是接受信息的函数部分

你说有偿我以为...

你就帮我一下呗

追答

stu就是一个存储学生信息的结构体数组
stu[0]就是第一个学生
和其它的数组没有什么区别

然后你有多少学生那个下标就是n-1

遍历也就是在一个循环里做

追问

我想问第一个那个判断具体怎么做

追答

在输入后进行判断

追问

跟我讲讲124就可以了

追答

举个例子
id
不知道那个IDLen数值是多少
可以先strlen判断长度是否符合
然后循环遍历这个字符串判断其中字符是否为0-9即可

追问

先说1该怎么做?判断具体怎么做?

追答

。。。。。。

追问

我先试试

追答

IDLen是多少

追问

13

追答

要求是必需按着这个代码来
是只能添加代码不断是可以改动

还是可以改动

追问

只要实现功能就行

追答

如果只能添加的话长度就不需要判断了

追问

但是我运行时,输入的字符即使超出范围但是程序没有报错啊

追答

因为你的最大长度是12
不管你输入多少(那怕是溢出了)也没用
因为代码中将12那个下标处设置为0了

追问

溢出的就没有保存到,但是我现在需要在用户输入范围时给提示

追答

事实上应该是有个缓冲区溢出的
你的函数中分配的有栈空间
如果溢出的并不是很多可能不会产生错误
如果你溢出的比较多就会覆盖其它数据

没有"保存"到是因为你的代码将后面的截去了
因为字符串是以0结尾的

要么你使用一个新的数组(大一点)来做临时存储
要么换成数字来做

当然考虑到数字也可能会溢出。。。。。

追问

...

额,这个用文学真的很难说清楚啊

我先转专业了....

追答

其实很简单
用一个大的数组临时存储输入的id
判断长度和各个元素是否符合要求
符合就复制给你的结构体成员变量
不符合提示出错
用数字做是相同的思路

追问

你给我说一下2嘛

哦!懂了

追答

在一个数组中找一个数字你应该会做吧
这个查询和那个思路也是一样的

追问

那你说的便历怎么做

追答

。。。。。

追问

忘了

追答

前面就跟你说过了
数组遍历从下标0开始一直到n-1

......

追问

但是,我要查找的是数组元素啊

我该怎么把字符串中的字符依次拿出来判断呢

大侠,莫走啊

追答

在给别人写代码
等会

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答