洛谷入门——不高兴的津津(冒泡排序问题)

本文介绍了一个关于中学生津津一周学习安排的问题,通过编程解决如何判断津津是否会因过度学习而不高兴,以及哪天她最不高兴。使用C++实现了冒泡排序算法来找出学习时间最长的一天。

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

题目描述
津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。

输入输出格式
输入格式:
输入包括77行数据,分别表示周一到周日的日程安排。每行包括两个小于1010的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。

输出格式:
一个数字。如果不会不高兴则输出00,如果会则输出最不高兴的是周几(用1, 2, 3, 4, 5, 6, 71,2,3,4,5,6,7分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。

我的代码

#include<iostream>
using namespace std;
int main()
{
	int a[7],b[7],c[7],d[7];
	int i=0;
	while (i < 7)
	{
		cin >> a[i]>> b[i];
		c[i ] = a[i] + b[i];
		d[i] = c[i];
		i++;
	}
	
	for (i = 6; i>0; i--)     //对7组数据排序
	{
		for (int j = i - 1; j >= 0; j--)
		{
			if (c[i] > c[j])
			{
				int tem;
				tem = c[i];
				c[i] = c[j];
				c[j] = tem;
			}
		}
	}
		if (c[0] < 9)
			cout << 0;
		else {
			for (i = 0; i <7; i++)
	{
				if (d[i] == c[0])
				{
					cout << i + 1;
					break;
				}
		}
	}

		return 0;

}
/*input:
5 3
6 2
7 2
5 3
5 4
0 4
0 6
output:
3
 */

知识点——冒泡排序
首先要知道冒泡排序的时间复杂度为o(n^2),空间复杂度为o(n)。
排序原理如下图:
图片来源:https://www.cnblogs.com/taotingkai/p/6214367.html

for (int i = 0; i < n - 1; i++)//升序
	{
            for (int j = 0; j < n - i - 1; j++)
	        {
                    if (arr[j] > arr[j + 1]) 
			{
                            int temp = arr[j];
                            arr[j] = arr[j + 1];
                            arr[j + 1] = temp;
                        }
                 }
         }
for (i = n-1; i>0; i--)     //降序
	{
		for (int j = i - 1; j >= 0; j--)
		{
			if (arr[i] > arr[j])
			{
				int temp;
				temp = arr[i];
				arr[i] = arr[j];
				arr[j] = temp;
			}
		}
	}

拓展——选择排序
排序原理如下图:
图片来源:https://www.cnblogs.com/taotingkai/p/6214367.html

//升序
for (int i = 0; i < n -1 ; i++) {                          
  for (int j = i+1; j < n; j++) {
             int temp ;  
            if(arr[i]>arr[j]){
              temp =  arr[i];
                arr[i] = arr[j];
                  arr[j] = temp;
                       }
      }
   }

注:文中图片来源:https://www.cnblogs.com/taotingkai/p/6214367.html

在C++编程中,与情绪相关的代码通常涉及模拟人类情感或心理状态的逻辑。虽然直接与“情绪”相关的代码较少见,但可以通过变量名、函数名或特定逻辑来表达类似的概念。以下是一个示例代码,其中使用了变量名“津津”来表示一个角色的情绪状态。 ### 示例代码:津津的情绪变化 ```cpp #include <iostream> #include <string> using namespace std; int main() { string jinjin_mood = "happy"; // 津津的初始情绪为快乐 int events_count = 0; // 记录发生的事件数量 cout << "请输入发生的事件数量:" << endl; cin >> events_count; for (int i = 0; i < events_count; ++i) { string event; cout << "请输入第 " << i + 1 << " 个事件(good/bad):" << endl; cin >> event; if (event == "good") { if (jinjin_mood != "happy") { // 如果当前是快乐,则变为快乐 jinjin_mood = "happy"; } } else if (event == "bad") { if (jinjin_mood != "sad") { // 如果当前是悲伤,则变为悲伤 jinjin_mood = "sad"; } } } cout << "津津的最终情绪是:" << jinjin_mood << endl; return 0; } ``` ### 代码说明 - 使用字符串变量 `jinjin_mood` 表示津津的情绪状态,初始值为 `"happy"`。 - 用户输入事件数量和每个事件的类型(`good` 或 `bad`),根据事件类型调整津津的情绪状态[^1]。 - 通过简单的逻辑判断,模拟津津情绪的变化过程。 ### 注意事项 - 上述代码仅为演示目的,实际应用中可能需要更复杂的逻辑来模拟真实的情绪变化。 - 情绪状态可以扩展为更多种类,例如 `"neutral"`, `"angry"`, `"excited"` 等,以增加程序的灵活性和趣味性[^2]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值