当前位置: 首页 > article >正文

C语言代码练习(第十八天)

今日练习:

48、猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩下一个桃子了。求第1天共摘了多少个桃子。
49、两个乒乓球队进行比赛,各出3个人。甲队为 A, B, C3人,乙对为 X, Y, Z3人。已抽签决定比赛名单。有人向队员打听比赛的名单, A 说他不和 X 比赛, C 说他不和 x, z 比赛,请编程程序找出3对赛手的名单。
50、选择法对10个数排序

猴子吃桃问题。求第1天共摘了多少个桃子。

猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩下一个桃子了。

运行代码

int main()
{
	int day = 9;
	int day_1 = 0;
	int day_2 = 1;
	while (day > 0)
	{
		day_1 = (day_2 + 1) * 2;
		day_2 = day_1;
		day--;
	}
	printf("第一天共摘了%d 个桃子\n", day_1);
	return 0;
}

运行结果

两个乒乓球队进行比赛,各出3个人。甲队为 A, B, C3人,乙对为 X, Y, Z3人。已抽签决定比赛名单。有人向队员打听比赛的名单, A 说他不和 X 比赛, C 说他不和 x, z 比赛,请编程程序找出3对赛手的名单。

运行代码

int main()
{
	char i = '0';
	char j = '0';
	char k = '0';
	//i是a的对手,j是b的对手,k是c的对手
	for (i = 'x'; i <= 'z'; i++)
	{
		for (j = 'x'; j <= 'z'; j++)
		{
			if (i != j)
			{
				for (k = 'x'; k <= 'z'; k++)
				{
					if (i != k && j != k)
					{
						if (i != 'x' && k != 'x' && k != 'z')
						{
							printf("A 的对手是 %c \nB 的对手是 %c \nC 的对手是 %c \n", i, j, k);
						}
					}
				}
			}
		}
	}
	return 0;
}

运行结果

 选择法对10个数排序

解题思路

设有十个元素(arr[0]--arr[9]),将arr[0]与arr[1]--arr[9]进行比较,若arr[0]比arr[1]--arr[9]都小,则不进行交换,若arr[1]--arr[9]中有一个以上比arr[0]小,则将其中最大的一个与arr[0]交换,此时arr[0]中存放了10个中最小的数,依此类推共进行9轮比较

运行代码

int main()
{
	int i = 0;
	int j = 0;
	int min = 0;
	int temp = 0;
	int arr[11];
	printf("输入数据:\n");
	for (i = 1; i <= 10; i++)
	{
		printf("arr[%d]=", i - 1);
		scanf("%d", &arr[i]);
	}
	printf("\n");
	printf("原样输出:\n");
	for (i = 1; i <= 10; i++)
	{
		printf("%5d", arr[i]);
	}
	printf("\n");
	for (i = 1; i <= 9; i++)
	{
		min = i;
		for (j = i + 1; j <= 10; j++)
		{
			if (arr[min] > arr[j])
			{
				min = j;
			}
		}
		temp = arr[i];
		arr[i] = arr[min];
		arr[min] = temp;
	}
	printf("排序输出:\n");
	for (i = 1; i <= 10; i++)
	{
		printf("%5d",arr[i]);
	}
	printf("\n");
	return 0;
}

运行结果

 求一个3 * 3的整型矩阵对角线元素之和

运行代码

int main()
{
	int arr[3][3];
	int sum = 0;
	int i = 0;
	int j = 0;
	printf("输入数据:\n");
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 3; j++)
		{
			scanf("%3d", &arr[i][j]);
		}
	}
	for (i = 0; i < 3; i++)
	{
		sum = sum + arr[i][i];
	}
	printf("sum=%d\n", sum);
	return 0;
}

运行结果


http://www.kler.cn/a/301837.html

相关文章:

  • 一个win32 / WTL下多线程库(CThread类)的使用心得
  • 网络基础(4)传输层
  • Qt 项目架构设计
  • 将已有的MySQL8.0单机架构变成主从复制架构
  • Python进程间通讯大揭秘:原理深度剖析与实战案例分享
  • HarmonyOS 开发环境搭建
  • Docker 之虚悬镜像
  • ERROR: Failed building wheel for cython_bbox | pip install cython_bbox 失败【解决方案】
  • linux下的Socket网络编程教程
  • CTK框架(十):PluginAdmin插件
  • Docker | 轻松管理容器:Portainer安装与使用指南
  • Stream API 如何使用
  • Vue3 el-switch @change事件在初始化时会自动调用问题
  • docker_快速部署flask架构下的web容器
  • redis群集的三种模式
  • MK 米客方德 TF 卡 —— 录音笔、领夹麦、电池门铃等设备的高效能、低功耗存储首选
  • 双线性插值算法
  • 19:I2C一:程序模拟I2C通信时序
  • [数据集][目标检测]汽车头部尾部检测数据集VOC+YOLO格式5319张3类别
  • 配环境时的一些记录
  • 好看好听的小猪包扩音器,轻巧便携更好用,得胜E10上手
  • C++库之一:Loki
  • Python在音频传输中的应用实例解析
  • C# HttpClient 实现HTTP Client 请求
  • 智能体 vs AI智能体:区别与联系,一文读懂!
  • 【React+Ts+Vite+AntDesign】从0到1基础项目搭建(动态路由)