简单的编程问题,c语言中,我定义了一个结构体数组,但结构体中的各个元素的类型是不同的,比如一个学生的名字,性别,成绩。结构体中的信息需要我逐一输入
问题:图中项目拓展部分,能回答几个就回答几个吧
遍历怎么做
追答就是遍历数组
从下标0开始一直到数组结尾
追问等等,我给你看一下代码,你再给我说
我可以加分的
追答嘛,我其实不要你分
要你分也没用其实。。。。。。
后一张图是接受信息的函数部分
你说有偿我以为...
你就帮我一下呗
追答stu就是一个存储学生信息的结构体数组
stu[0]就是第一个学生
和其它的数组没有什么区别
然后你有多少学生那个下标就是n-1
遍历也就是在一个循环里做
追问我想问第一个那个判断具体怎么做
追答在输入后进行判断
追问跟我讲讲124就可以了
追答举个例子
id
不知道那个IDLen数值是多少
可以先strlen判断长度是否符合
然后循环遍历这个字符串判断其中字符是否为0-9即可
先说1该怎么做?判断具体怎么做?
哦
追答。。。。。。
追问我先试试
追答IDLen是多少
追问13
追答要求是必需按着这个代码来
是只能添加代码不断是可以改动
还是可以改动
追问只要实现功能就行
追答如果只能添加的话长度就不需要判断了
追问?
但是我运行时,输入的字符即使超出范围但是程序没有报错啊
追答因为你的最大长度是12
不管你输入多少(那怕是溢出了)也没用
因为代码中将12那个下标处设置为0了
溢出的就没有保存到,但是我现在需要在用户输入范围时给提示
追答事实上应该是有个缓冲区溢出的
你的函数中分配的有栈空间
如果溢出的并不是很多可能不会产生错误
如果你溢出的比较多就会覆盖其它数据
没有"保存"到是因为你的代码将后面的截去了
因为字符串是以0结尾的
要么你使用一个新的数组(大一点)来做临时存储
要么换成数字来做
当然考虑到数字也可能会溢出。。。。。
追问...
额,这个用文学真的很难说清楚啊
我先转专业了....
追答其实很简单
用一个大的数组临时存储输入的id
判断长度和各个元素是否符合要求
符合就复制给你的结构体成员变量
不符合提示出错
用数字做是相同的思路
你给我说一下2嘛
哦!懂了
追答在一个数组中找一个数字你应该会做吧
这个查询和那个思路也是一样的
那你说的便历怎么做
追答。。。。。
追问忘了
追答前面就跟你说过了
数组遍历从下标0开始一直到n-1
......
追问但是,我要查找的是数组元素啊
我该怎么把字符串中的字符依次拿出来判断呢
大侠,莫走啊
追答在给别人写代码
等会