北理工乐学C语言 47. 【大学】北理工的恶龙

背景:
最近,北理工出现了一只恶龙,它长着很多 头,而且还会吐火,它将会把北理工烧成废墟, 于是,校长下令召集全校所有勇士杀死这只恶龙。要杀死这只龙,必须把它所有的头都砍掉,每个勇士只能砍一个龙头,龙的每个头大小都不一样,一个勇士只有在身高不小于龙头的直径的情况下才能砍下它。而且勇士们要求,砍下一个龙头必须得到和自己身高厘米数一样的学分。校长想花 最少的学分数 杀死恶龙,于是找到你寻求帮助。

输入:
第一行 龙头数 n , 勇士人数 m ( 1<=n, m<=100 ) 接下来 n 行,每行包含一个整数,表示龙头的直径 接下来 m 行,每行包含一个整数,表示勇士的身高 l

输出:
如果勇士们能完成任务,输出校长需要花的最小费用;否则输 出 “bit is doomed! ”

 测试输入 期待的输出 时间限制 内存限制 额外进程
测试用例 1以文本方式显示
  1. 2 3↵
  2. 5↵
  3. 4↵
  4. 7↵
  5. 8↵
  6. 4↵
以文本方式显示
  1. 11↵
1秒64M0
测试用例 2以文本方式显示
  1. 2 1↵
  2. 5↵
  3. 5↵
  4. 10↵
以文本方式显示
  1. bit is doomed!↵
1秒64M0
#include<stdio.h>
int* sort(int arr[], int x);//给数组中元素排序的函数
int main(void)
{
	int m, n, i, j;
	scanf("%d %d", &m, &n);
	int* arr_m_sort, * arr_n_sort;
	int arr_m[100] = { 0 }, arr_n[100] = { 0 };
	for (i = 0; i < m; i++)
	{
		scanf("%d", &arr_m[i]);
	}
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr_n[i]);
	}
	arr_m_sort = sort(arr_m, m);
	arr_n_sort = sort(arr_n, n);
	int cnt = 0, x = 0;
	int ysh[100] = { 0 };
	if (n < m)
		printf("bit is doomed!\n");
	else
	{
		for (i = 0; i < m; i++)
		{
			for (j = x; j < n; j++)
			{
				x++;
				if (arr_m_sort[i] <= arr_n_sort[j])
				{
					ysh[cnt] = arr_n_sort[j];
					cnt++;
					break;
				}
			}
		}
		if (cnt == m)
		{
			int sum = 0;
			for (i = 0; i < cnt; i++)
			{
				sum += ysh[i];
			}
			printf("%d\n", sum);
		}
		else
			printf("bit is doomed!\n");
	}
	return 0;
}

int* sort(int arr[], int x)
{
	int i, j, p, t;
	for (i = 0; i < x - 1; i++)
	{
		p = i;
		for (j = i + 1; j < x; j++)
		{
			if (arr[p] > arr[j])
				p = j;
		}
		if (p != i)
		{
			t = arr[p];
			arr[p] = arr[i];
			arr[i] = t;
		}
	}
	return arr;
}

本人C语言菜鸟一枚,代码不当或可以改进的地方欢迎大家讨论交流。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
北理工乐学C语言答案主要包含以下内容: 1. C语言的基础知识:包括C语言的起源和发展、C语言的编译与执行过程、C语言的数据类型、运算符和表达式、控制结构等。这些知识点是学习C语言的基础,掌握好这些知识对于进一步学习和应用C语言非常重要。 2. C语言的语法规则:包括C语言的注释方式、标识符的命名规则、变量的定义和声明、函数的定义和调用等。熟悉和掌握C语言的语法规则可以帮助我们编写出规范的C语言程序,并且减少错误的发生。 3. C语言的输入输出:包括C语言中的标准输入输出函数scanf和printf的使用方法,以及文件的输入输出操作。掌握C语言的输入输出是进行程序开发和调试的基础,也是与用户进行交互的重要手段。 4. C语言的函数与模块化编程:包括C语言中函数的定义、函数的参数传递、函数的返回值等。学会如何使用函数可以使程序的结构更加清晰,提高代码的复用性和可维护性。 5. C语言的数组与指针:包括C语言中数组和指针的概念、数组和指针的使用方法,以及二维数组和指针的关系等。了解和掌握数组和指针的用法可以更好地处理复杂的数据结构算法。 6. C语言的字符串处理:包括C语言中字符串的定义和表示方法,以及字符串相关的函数库的使用。字符串处理在实际编程中非常常见,掌握字符串处理的技巧可以提升程序的效率和可读性。 北理工乐学C语言答案综合了以上内容,帮助学习者全面理解和掌握C语言的基本知识和技巧,为进一步学习和应用C语言打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值