C语言基础练习14


1.有3个学生的信息,放在结构体数组中,要求输出全部学生的信息

#include "stdafx.h"
#include<stdio.h>

struct Student
{
	int num;
	char name[20];
	char sex;
	int age;
};
struct Student stu[3] = { {10101,"Li Lin",'M',18},{10102,"Zhang Fang",'M',19},{10104,"Wang Min",'F',20} };

int main()
{
	struct Student *p;
	printf(" No.   Name                sex age\n");
	for (p = stu; p < stu + 3; p++)
		printf("%5d %-20s %2c %4d\n", p->num, p->name, p->sex, p->age);
	return 0;
}
运行结果:



2.写一函数建立一个有3名学生数据的单向动态链表并输出链表

#include "stdafx.h"
#include<stdio.h>
#include<malloc.h>
#define LEN sizeof(struct Student)
struct Student
{
	long num;
	float score;
	struct Student*next;
};
int n;
struct Student*creat()
{
	struct Student*head;
	struct Student*p1, *p2;
	n = 0;
	p1 = p2 = (struct Student*) malloc(LEN);
	scanf_s("%ld,%f", &p1->num, &p1->score);
	head = NULL;
	while (p1->num != 0)
	{
		n = n + 1;
		if (n == 1)head = p1;
		else p2->next = p1;
		p2 = p1;
		p1 = (struct Student*) malloc(LEN);
		scanf_s("%ld,%f", &p1->num, &p1->score);
	}
	p2->next = NULL;
	return(head);
}

void print(struct Student* head)
{
	struct Student * p;
	printf("\nNow,These %d records are:\n", n);
	p = head;
	if(head!=NULL)
		do
		{
			printf("%ld %5.1f\n", p->num, p->score);
			p = p->next;
		} while (p != NULL);
}

int main()
{
	struct Student*head;
	head = creat();
	print(head);
}
运行结果:



3.有若干个人员的数据,其中有学生和老师。学生的数据包括:姓名、号码、性别、职业、班级。教师的数据包括:姓名、号码、性别、职业、职务。要求用同一个表格来处理

#include "stdafx.h"
#include<stdio.h>
struct
{
	int num;
	char name;
	char sex;
	char job;
	union
	{
		int clas;
		char position;
	}category;
}person[2];

int main()
{
	int i;
	for (i = 0; i < 2; i++)
	{
		printf("please enter the data of person:\n");
		scanf_s("%d %c %c %c", &person[i].num, &person[i].name, &person[i].sex, &person[i].job);
		if (person[i].job == 's')
			scanf_s("%d", &person[i].category.clas);
		else if (person[i].job == 't')
			scanf_s("%c", &person[i].category.position);
		else
			printf("Input error!");
	}
	printf("\n");
	printf("No.   name     sex job class/position\n");
	for (i = 0; i < 2; i++)
	{
		if (person[i].job == 's')
			printf("%-6d%-10c%-4c%-4c%-10d\n", person[i].num, person[i].name, person[i].sex, person[i].job, person[i].category.clas);
		else
			printf("%-6d%-10c%-4c%-4c%-10c\n", person[i].num, person[i].name, person[i].sex, person[i].job, person[i].category.position);
	}
	return 0;
}



猜你喜欢

转载自blog.csdn.net/huaweiran1993/article/details/78504167