0
点赞
收藏
分享

微信扫一扫

js 将一维数组转换成树形结构的方法

单调先生 2024-11-06 阅读 17

1. 时间转换

//时间转换
//给定秒数 --> 转换成 小时/分/秒
int main()
{
	//输入
	int seconds = 0;
	int h = 0;//小时
	int m = 0;//分钟
	int s = 0;//秒
	scanf("%d", &seconds);
	
	//计算
	h = seconds / 60 / 60;
	m = seconds / 60 % 60;
	s = seconds % 60;

	//输出
	printf("%d %d %d", h, m, s);
	return 0;
}

 2.输入成绩/计算总成绩

//总成绩和平均分计算
//法一
int main()
{
	//输入
	double score[3] = { 0 };//三科成绩
	scanf("%lf %lf %lf", &score[0], &score[1], &score[2]);
	//计算
	double sum = score[0] + score[1] + score[2];
	double avg = sum / 3.0;
	//输出
	printf("%.2lf %.2lf\n", sum, avg);
	return 0;
}

//法二
int main()
{
	//输入计算
	int i = 0;
	double score = 0.0;
	double sum = 0.0;
	for (i = 0; i < 3; i++)
	{
		scanf("%lf", &score);
		sum += score;
	}
	printf("%.2lf %.2lf\n", sum, sum / 3);
	return 0;
}

3.kiki 喝酸奶

int main()
{
	int n = 0;
	int h = 0;
	int m = 0;
	while (scanf("%d %d %d", &n, &h, &m) != EOF)
	{
		if (m % h)
		{
			printf("%d\n", n - m / h - 1);
		}
		else
		{
			printf("%d\n", n - m / h);
		}
	}
	printf("\n");
	return 0;
}

 4.进制A+B

int main()
{
	int a = 0;
	int b = 0;
	scanf("%x %o", &a, &b);
	printf("%d\n", a + b);
	return 0;
}
  • 16进制,8进制只是数据的表示形式,实际上都是整数
  • 16进制是以 0x 开头  %x
  • 8进制是以 0 开头的  %o 

5.网购

int main()
{
	double price = 0.0;
	int month = 0;
	int day = 0;
	int flag = 0;//是否有优惠劵
	double cut = 1.0;
	double last = 0.0;

	//输入
	scanf("%lf %d %d %d", &price, &month, &day, &flag);

	if (month == 11 && day == 11)
	{
		cut = 0.7;
		if (flag == 1)
		{
			last = price*cut - 50;
		}
		else
		{
			last = price * cut;
		}
	}

	else if (month == 12 && day == 12)
	{
		cut = 0.8;
		if (flag == 1)
		{
			last = price * cut - 50;
		}
		else
		{
			last = price * cut;
		}
	}

	else
	{
		last = price;
	}

	if (last < 0.0)
	{
		printf("%.2lf\n", 0.0);
	}
	else
	{
		printf("%.2lf\n", last);
	}

	return 0;
}

//简化

int main()
{
	double price = 0.0;
	int month = 0;
	int day = 0;
	int flag = 0;
	double cut = 1.0;
	double last = 0.0;
	scanf("%lf %d %d %d", &price, &month, &day, &flag);

	if (month == 11 && day == 11)
	{
		cut = 0.7;
		flag = 1;
	}
	if (month == 12 && day == 12)
	{
		cut = 0.8;
		flag = 1;
	}
	last = price * cut - flag * 50;
	if (last < 0.0)
	{
		printf("%.2lf", 0.0);
	}
	else
	{
		printf("%.2lf", last);
	}

	return 0;
}

6.争夺前 5 名

//争夺前5名
int main()
{
	//输入
	int n = 0;//个数
	int arr[40] = { 0 };//成绩
	scanf("%d", &n);
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	//找出前五名 -- 排序 -- 冒泡排序 -- 升序 -- 后5个元素
	//趟数
	for (i = 0; i < n - 1; i++)
	{
		//一趟冒泡排序需要进行 多少对 的元素比较
		for (int j = 0; j < n - 1 - i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				int tmp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tmp;
			}
		}
	}
	for (i = n - 1; i > n - 6; i--)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}
举报

相关推荐

0 条评论