Doing Homework again 杭电 1789

本文探讨了排序算法(冒泡排序)的应用,以及在处理考试成绩数据时如何使用数据结构(数组)进行优化。通过读取考试信息,包括考试日期、成绩和考试次数,程序实现了成绩排序和成绩获取功能,最终计算并输出了未获取的成绩总和。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<stdio.h>
void bubble_sort(int score[],int number);
int expiry_day[1100];
int reduced_score[1100];
int can_got_score[1100];

int main()
{
	int number_of_test_cases;
	int number_of_subject;
	while( scanf("%d",&number_of_test_cases)!=EOF )
	{
		while(number_of_test_cases--)
		{
			for(int index=0; index<1010; index++)
			{
				can_got_score[index]=0;
			}
			int max_expriy_day=0;
			scanf("%d",&number_of_subject);
			for(int index=0; index<number_of_subject; index++)
			{
				scanf("%d",&expiry_day[index]);
				if(expiry_day[index]>max_expriy_day)
				{
					max_expriy_day=expiry_day[index];
				}
			}
			int sum_subject_score=0;
			for(int index=0; index<number_of_subject; index++)
			{
				scanf("%d",&reduced_score[index]);
				sum_subject_score+=reduced_score[index];
			}
			bubble_sort(reduced_score,number_of_subject);
			for(int now, index=0; index<number_of_subject; index++)
			{
				now=expiry_day[index];
				for(; now>=0; now--)
				{
					if(can_got_score[ now ]==0)
					{
						can_got_score[ now ]=reduced_score[index];
						break;
					}
				}
			}
			int sum_can_got_score=0;
			for(int index=1; index<=max_expriy_day; index++)
			{
				sum_can_got_score+=can_got_score[index];
			}
			printf("%d\n",sum_subject_score-sum_can_got_score);
		}
	}
}

void bubble_sort(int score[],int number)
{
	int t; 
	for(int i=1; i<number; i++)
	{
		for(int j=number-1; j>=i; j--)
		{
			if(score[j]>score[j-1])
			{
				t=reduced_score[j];
				reduced_score[j]=reduced_score[j-1];
				reduced_score[j-1]=t;
				t=expiry_day[j];
				expiry_day[j]=expiry_day[j-1];
				expiry_day[j-1]=t;
			}
		}
	}
}

### 创建或管理任务列表在软件开发中的重要性和方法 在软件开发过程中,有效的 **任务管理和待办事项清单(Todo List)** 是至关不可少的一部分。这不仅有助于开发者合理分配时间资源,还能提高工作效率并减少遗漏的可能性。 #### 时间管理技巧 一种常见的做法是在每天开始之前维护一份日记或者日程表来记录所有的任务[^1]。通过这种方式可以优先处理当天最重要的工作,并预留一些灵活的时间给次要的任务。如果同时参与多个项目,则可以根据具体的时间承诺划分每项工作的小时数,并保持一个清晰的TODO列表用于跟踪当前手头上的任务[^1]。 #### 软件执行环境下的任务调度 当涉及到更复杂的计算密集型应用时,比如需要利用CPU和GPU共同完成运算的情况下,任务管理系统还需要考虑如何有效地安排这些硬件资源之间的协作问题[^2]。这意味着不仅要规划好各个子任务何时被执行,还要确保它们之间能够顺利同步以及妥善管理GPU内存等有限资源。 #### 极简主义的方法论 对于规模较小但频率较高的迭代周期内的产品来说,采用极其简单的工具甚至只是纸笔也可能达到意想不到的效果[^3]。尽管这种方法看起来缺乏现代科技感,但在特定场景下却能展现出独特的优势——它去除了不必要的复杂度干扰因素,让使用者专注于核心目标本身而不被繁杂的功能界面所困扰。 以下是基于Python实现的一个基础版本的任务管理器代码示例: ```python class TaskManager: def __init__(self): self.tasks = [] def add_task(self, description): self.tasks.append({"description": description, "completed": False}) def complete_task(self, index): if 0 <= index < len(self.tasks): self.tasks[index]["completed"] = True def show_tasks(self): for i, task in enumerate(self.tasks): status = "[X]" if task["completed"] else "[ ]" print(f"{i}: {status} {task['description']}") # Example Usage tm = TaskManager() tm.add_task("Implement feature A") tm.add_task("Fix bug B") tm.show_tasks() tm.complete_task(0) tm.show_tasks() ``` 此脚本允许用户添加新任务、标记已完成的任务并通过命令行查看所有现有条目及其状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值