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数组各元素赋值和输出值。
(如有错误,谢谢斧正)