4.11 作业+思维导图

 

 


2.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef struct stu{
	char name[16];
	int score;
}stu_t, *pstu_t;

void selectionSort(pstu_t, int);

int main(int argc, const char *argv[])
{
	const size_t ArSize = 5;
	pstu_t p = (pstu_t)malloc(sizeof(stu_t) * ArSize);
	printf("Please enter student info:\n");
	for(size_t i = 0; i < ArSize; i++){
		printf("#%lu:\n", i + 1);
		printf("name: ");
		gets((p + i)->name);
		printf("score: ");
		scanf("%d", &(p + i)->score);
		getchar();
	}
	selectionSort(p, ArSize);
	for(size_t i = 0; i < ArSize; i++){
		printf("#%lu:\n", i + 1);
		printf("name: %s, score: %d\n", (p+i)->name, (p+i)->score);
	}
	free(p);
	return 0;
}

void selectionSort(pstu_t p, int n){
	for(size_t i = 0; i < n - 1; i++){
		size_t min = i;
		for(size_t j = i + 1; j < n; j++)
			if((p+min)->score > (p+j)->score)
				min = j;
		if(min != i){
			stu_t temp = p[i];
			p[i] = p[min];
			p[min] = temp;
		}
	}
}
Please enter student info:
#1:
name: jerry
score: 98
#2:
name: kitty
score: 92
#3:
name: lucy
score: 80
#4:
name: kobe 
score: 100
#5:
name: messi
score: 0
#1:
name: messi, score: 0
#2:
name: lucy, score: 80
#3:
name: kitty, score: 92
#4:
name: jerry, score: 98
#5:
name: kobe, score: 100

3.

Student:4+50+3+3(补充)=60

Teacher:4+50+2(补充)+60=116

注:50+2+60=112能被min(8, 60)整除

Course:4+50+2(补充)+116=172

注:50+2+116=168能被min(8, 116)整除

8为64位操作系统对齐量,4为32位操作系统对齐量

成员位于最大对齐成员对齐量与系统对齐量中最小值的整数倍的位置上(相对于第一个成员的末尾开始)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值