day2作业

 1zuoye.c

#include "head.h"
/*
 * function:    在堆区申请空间
 * @param [ in] 
 * @param [out] 
 * @return      成功返回地址,失败返回null
 */

 per *create(int n)
{
	per *p=(per *)malloc(sizeof(per)*n);
	if(p==NULL)
		return NULL;
		return p;
}
/*
 * function:   输入人员信息 
 * @param [ in] 指针
 * @param [out] 
 * @return      无返回值
 */
void input(per *p,int n)
{
	for(int i=0;i<n;i++)
	{
		printf("请输入姓名:");
		scanf("%s",(p+i)->name);
		printf("请输入性别:");
		scanf(" %c",&(p+i)->sex);
		printf("请输入职业:");
		scanf(" %c",&(p+i)->job);
		if((p+i)->job=='s'||(p+i)->job=='S')
		{
			printf("请输入分数:");
			scanf("%f",&(p+i)->score);
		}
		else 
		{
			printf("请输入职务:");
			scanf("%s",(p+i)->position);
		}
	}

}
/*
 * function:    输出人员信息
 * @param [ in] 指针
 * @param [out] 
 * @return      
 */
void output(per *p,int n)
{
	printf("姓名\t性别\t职业\t成绩/职位\n");
	for(int i=0;i<n;i++)
	{
		printf("%s\t",(p+i)->name);
		printf("%c\t",(p+i)->sex);
		printf("%c\t",(p+i)->job);
		if((p+i)->job=='s'||(p+i)->job=='S')
		{
			printf("%.2f\n",(p+i)->score);
		}else
		{
			printf("%s\n",(p+i)->position);
		}
	}
}
/*
 * function:    计算学生平均成绩
 * @param [ in] 指针
 * @param [out] 
 * @return      返回学生成绩平均值
 */
float ave(per *p,int n)
{
	float sum=0;
	int g=0;
	for(int i=0;i<n;i++)
	{
		if((p+i)->job=='s'||(p+i)->job=='S')
		{
			sum+=(p+i)->score;
			g++;
		}
	}
return sum/g;
}
/*
 * function:    计算老师个数
 * @param [ in] 指针
 * @param [out] 
 * @return      返回gs
 */
int jsgs(per *p,int n)
{
	int gs=0;
	for(int i=0;i<n;i++)
	{
		if((p+i)->job=='t'||(p+i)->job=='T')
		{
			gs++;
		}
	}
	return gs;
}
/*
 * function:    释放空间
 * @param [ in] 指针
 * @param [out] 
 * @return      NULL
 */
void fr(per *p)
{
	free(p);
	p=NULL;
}

#include "head.h"

int main(int argc, const char *argv[])
{
	
	int n;
	printf("需要输入的人员数:");
	scanf("%d",&n);
	per *p=create(n);
	input(p,n);
	output(p,n);
	printf("学生平均成绩:%.2f\n",ave(p,n));
	printf("教师个数:%d\n",jsgs(p,n));
	fr(p);
	return 0;
}
#ifndef N
#define N
#include<stdio.h>
#include<string.h>
#include<stdlib.h>


typedef struct person
{   
	char name[20];
	char sex;
	char job;
	union
	{
		float score;
		char position[20];
	};
}per;
per *create(int n);
void input(per *p,int n);
void output(per *p,int n);
int jsgs(per *p,int n);
void fr(per *p);
float ave(per *p,int n);


#endif

作业2

 2zuoye.c

#include "head.h"
/*
 * function:    在堆区申请空间
 * @param [ in] 
 * @param [out] 
 * @return      成功返回地址,失败返回null
 */

car *create(int n)
{
	car *p=(car *)malloc(sizeof(car)*5);
	if(p==NULL)
		return NULL;
		return p;
}
void input (car *p,int n)
{
	for(int i=0;i<n;i++)
	{
		printf("请输入品牌:");
		scanf("%s",(p+i)->name);
		printf("请输入颜色:");
		scanf(" %s",(p+i)->color);
		printf("请输入价格:");
		scanf(" %d",&(p+i)->price);

	}
}
void comper(car *p,int n)
{
	for(int i=1;i<n;i++)
	{
		for(int j=0;j<n-i;j++)
		{
		if((p+j)->price > (p+j+1)->price)
		{
			car temp=p[j];
			p[j]=p[j+1];
			p[j+1]=temp;
		}
		}
	}
}
void output(car *p,int n)
{
	printf("品牌\t价格\t颜色\n");
	for(int i=0;i<n;i++)
	{
		printf("%s\t",p[i].name);
		printf("%d\t",p[i].price);
		printf("%s\n",p[i].color);

	}
}
void fr(car *p)
{
	free(p);
	p=NULL;
}
#include "head.h"


int main(int argc, const char *argv[])
{
	car *p=create(5);
	input (p,5);
	comper(p,5);
	output(p,5);
	fr(p);
	return 0;
}
#ifndef N
#define N
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

typedef struct CAR
{   
	char name[20];
	int price;
	char color[20];
	
}car;
car *create(int n);
void input(car *p,int n);
void comper(car *p,int n);
void output(car *p,int n);
void fr(car *p);

#endif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值