对于指针函数以及数组指针的应用

C语言学习作业:

定义一个二维数组,其中,元素个数代表学生人数,一维数组的元素代表学生各门成绩

通过判断,筛选出成绩不合格的学生

还没有学习结构体,对于二维数组可以使用结构体优化。

#include<stdio.h>


int * getposperson(int num,int(*p)[4])//形参:编号,数组指针
{
	int *pos;
	pos = (int*)(p+num);//基于父数组层面,对数组指针进行偏移,指向下一个子数组
	
	return pos;//返回子数组的地址
}

int main ()
{
	int a[3][4] = {
		{77,88,99,66},
		{54,67,12,77},
		{99,78,12,88}};//定义一个二维数组
	int num = 0;
	int ans ;
	//printf("请输入你要查看的学生编号(0,1,2):");
	//scanf("%d",&num);
	int *ppos;//定义一个指针
	for(int j;j<3;j++){
		ppos = getposperson(j,a);//指针接受 指针函数 返回的地址
		for(int i = 0;i<4;i++){
			if((*(ppos))<60){
				printf("第%d位学生,第%d门课程不合格,成绩是:%d\n",j+1,i+1,(*ppos));
			}
			ppos++;
		
		}
	}
	
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值