2023-12-13 课上练习(动态数组和结构体练习)

题目:建立动态数组,输入5个学生的成绩,另外用一个函数检查其中有无低于60分的,输出不合格的成绩

解题思路:

用malloc函数开辟一个动态自由区域,用来存5个学生的成绩,会得到这个动态域第1个字节的地址,它的基类型是void型。用一个基类型为int的指针变量p来指向动态数组的各元素,并输出它们的值。但必须先把malloc函数返回的void指针转换为整型指针,然后赋给p1。

代码:

#include
#include
int main()
{
	void check(int *);
	int *p1, i;
	p1= (int*)malloc(5 * sizeof(int));
	for (i = 0; i < 5; i++)
	{
		scanf_s("%d", p1 + i);
	}
	check(p1);//调用check函数
	return 0;
}

void check(int* p)//定义check函数,形参是int*指针
{
	int i;
	printf("不合格的:");
	for (i = 0; i < 5; i++)
	{
		if (p[i] < 60)
			printf("%d ", p[i]);//输出不合格的成绩
	}
	printf("\n");
}

运行结果: 

67 98 59 78 57
不合格的:59 57

题目:把一个学生的信息(包括学号、姓名、性别、住址)放在一个结构体变量中,然后输出这个学生的信息

解题思路:

先在程序中自己建立一个结构体类型,包括有关学生信息的各成员。然后用它来定义结构体变量,同时赋予初值(学生的信息)。最后输出该结构体变量的各成员(即该学生的信息)。

代码:

#include
#include
struct student
{
	int num;
	char name[10];
	char sex;
	float height;
};

int main()
{
	struct student s1;//定义结构变量
	s1.num = 99001;//保存记录
	strcpy(s1.name, "李明");
	s1.sex = 'M';
	s1.height = 1.75;
	printf("学号:%d\n", s1.num);//输出记录
	printf("名字:%s\n", s1.name);
	printf("性别:%c\n", s1.sex);
	printf("身高:%.2f", s1.height);
	return 0;
}

运行结果: 

学号:99001
名字:李明
性别:M
身高:1.75

你可能感兴趣的:(开发语言,数据结构,c++,c语言)