关于C语言学习的问题与收获(5)

1

输出二维数组的有关数据
在这里插入图片描述

在这里插入图片描述

这个代码本身很简单,但是却很有利于我们理解指针应用多维数组。如数组名a,表示指向一维数组a[0],也就是0行的起始地址。(a+1)就是a[1],而a[1]是唯一数组名,也是地址,指向a[1][0],所以a[1]为1行0列的元素的值。两者都是二维数组元素a[1][0]的不同表示形式。

a[1][0]如果加上“&”,输出则得到元素a[1][0]的地址。a+1是二维数组a中序号为一的行的起始地址(序号从0起算),而*(a+1)也并不是a+1单元的内容,因为a+1不是一个数组元素的地址,也就谈不上存储单元的内容了。*(a+1)+0也是同样的道理…

2

设计函数完成以下任务:

删除已知数组中指定位置的数据元素,若指定位置不存在返回0,否则返回1。

如数组a[0]a[4]中存放着1,2,3,4,5共5个元素,现删除2位置元素,则数组a[0]a[3]中存放着1,2,4,5共4个元素。

在这里插入图片描述运行结果:
在这里插入图片描述

在这里插入图片描述

定义函数寻找数组中的某个位置,并将在该位置的元素删除,得到k返还给主函数,输出前n-1个数,即删除目标位置上的元素后,将各元素继续排列。在这里,被删除的元素的位置由后位置中的元素补上,以此类推,for循环中判断条件“i<n-1”和“a[i]=a[i+1]”可防止数组中的“5”因后面没有数字而出现垃圾值。

3

1设计一学生结构体类型Student,包含成员为:姓名name,学号id,C语言成绩cl,高等数学成绩gs,大学英语成绩en,总分total,共六个成员属性。
2设计一输入函数,完成对学生个体信息的输入功能,其中总分无需输入,由三门成绩求和得到即可。
3设计一输出函数,完成学生个体信息的输出功能。

在这里插入图片描述
运行结果:

在这里插入图片描述结构体是一种由自己定义的数据类型,student为该结构体的名称,其包含有name,id,cl,gs,en和total成员,在主函数中定义结构体struct student类型的数组stu和指向struct student类型数据的指针变量p,使之指向数组的首元素stu[0]。而调用input和print函数时,均以指针变量p作为函数实参,形参则为struct student类型的数组stu。
且input和print函数无返回值,它们的作用是给stu数组各元素赋值和输出值。

(如有错误,谢谢斧正)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值