30句瞬间使你清醒的话,别再假装糊涂下去了!

本文提供了关于如何在人际关系中保持独立和理智的建议,包括如何处理与家人、朋友及恋人的关系,如何面对疾病和个人挑战,以及如何在竞争环境中保持自我。

  引导语:如果你痛苦,请不要用酒精灌醉;没有谁亏欠着你,你也不用对谁唯唯诺诺;分了手,就别去打扰彼此的生活。见了面,不要苦大仇深,大方地笑一下也不会死。

 

图片

 

    1、忍耐的实质就是,你要赚便宜你就赚,你想不要脸你就不要脸,随便。我能施舍给你的,我给;我给不了的,你找别人要去。至于别人给不给,那是你们的事了。
 
    2、对付虚伪的人,不是骂她,不是拆穿她,而是让她继续悲哀地虚伪着,然后装作什么也不知道。那么慢慢地,很多人会主动跑来告诉你她有多虚伪。
 
    3、对付自私的人,不是恨她,不是不理她,而是渐渐远离她,从心底远离她,然后装作什么都不知道。如果她去找别人,那么你会发现,很多人都远离了她。
 
    4、永远没有一个人是你离不开的,现在离不开的,不代表永远离不开。没有什么是你放弃不了的,你不放弃的可能会先放弃你也说不定。
 
    5、除了父母,没有什么人是不求回报的。恋人对你好是以爱情和谐为前提的,朋友对你好是以共同利益和消除寂寞为前提的。另外的人,就更不用说了。
 
    6、一个人生活虽然很难,但也必须学会一个人,不要轻易依赖别人。这是为了防止你身边的人都离开的时候,你还可以好好活下去。

 

图片

 
    7、生病的时候,自己要重视自己,不能等着哪个谁来重视你。等到那时候,你会发现自己不管是身体还是心灵都已经很难受了。
 
    8、独自异地求学,要学着多和父母联系沟通,要学着多听长辈的话。要学着忍耐,没有什么是你忍不了的,别人再错,也犯不着拿别人的错误惩罚自己。
 
    9、别人和你说的话,不管出于什么初衷,能信但不能全信。但是,别人说的时候,尽量认真听,仔细回应,这是对人的尊重。
 
    10、不要轻易试探你的好朋友,要不你不是很失望,就是多了个“神经病 想太多”的帽子。
 
    11、不要轻易对人多愁善感,就算你是真的多愁善感。别人可能不能理解你的多愁善感,也没这个义务和责任。这样的话,你想的发泄就变成了自取其辱和加深痛苦。

 

图片

 
    12、在任何状况下,不能玩弄别人,玩人必被人玩。你再有心眼,也不是最厉害的那个。
 
    13、不要去抢属于别人的利益,但也不能纵容别人抢自己的。这是原则。
 
    14、没有必要去嫉妒别人的成绩,人缘,地位,奖学金之类。

 

    原因有五:
 
    1,别人可能真的付出得比你多,只不过你没看到。
 
    2,这些东西只能带来一时的满足,而不是永久的满足,不要也罢。
 
    3,这里面有你玩不来的游戏规则,玩的来的人也都挺累的。
 
    4,你有不如人的,就一定有比别人好的,静待时机。
 
    5,不争抢这些,你的朋友会更多。

 

图片

 
    15、能帮助别人的,尽量帮忙。不能帮的,别勉强自己。
 
    16、对于喜欢和你对着干的人,首先要客观的反省自己,改正自己,消除自己的原因。其次,看清楚她是多么幼稚,让她一个人不开心好了。
 
    17、对于和自己生活习惯不同的人,把距离拉远一点,然后各自活各自的,不影响别人,也别要求别人改变。
 
    18、好兄弟,明算账。不要把账目搞地太复杂,无论钱是父母给的,还是自己赚的,要省着花。
 
    19、对于暗恋般的感情,没把握就别去捅破,时间久了,你就看淡了,成长了。
 
    20、两个人谈恋爱的经费,最好共同承担,女生不该让男生一个人承担。毕竟他爱你,不是欠你的。这样,就算分开了,也不会因为钱的事尴尬。
 
    21、对待大学里的爱情,要客观的看。你们在一起,不一定要有一个目的和目标,未来是未知的。不要嚷着别人什么都对你负责。
 
    22、不要为了摆脱寂寞,轻易在一起,要对别人的真心负责,要让你的爱对得起良心。
 
    23、对待恋人要信任,要不就别把他当恋人。

 

图片

 
    24、既然是因为爱在一起的,就认真经营这份感情,付出能付出的,结果不重要,善始善终。
 
    25、你爱的人也是普通人,懂得原谅他们犯的错误,懂得接受他们指出你的缺点和不足。
 
    26、男生不要轻易说出与承诺有关的话,女生不要轻易做需要别人承诺或负责的事。学会在某种程度上,保护好自己。
 
    27、面对别人不素的表白,耐心的倾听,不接受但尽量少的伤害别人。
 
    28、即使爱的火热,也要给自己和对方一个空间,让你们看得清楚,活得自在。
 
    29、对恋人的父母长辈朋友,表现地敬重而虚心。这是一个有素质的人该做的。
 
    30、分了手,就别去打扰彼此的生活。见了面,不要苦大仇深,大方地笑一下也不会死。

 

    编后语:永远没有一个人是你离不开的,现在离不开的,不代表永远离不开。没有什么是你放弃不了的,你不放弃的可能会先放弃你也说不定。没有人永恒的爱你,所以要学会自己爱自己,照顾自己,不要再天真糊涂了!

`qsort` 是 C 语言中非常强大且常用的排序函数,定义在 `<stdlib.h>` 头文件中。它是一个**通用的快速排序函数**,可以对任意类型的数组进行排序 —— 只要你提供一个合适的比较函数。 --- ### ✅ `qsort` 函数原型 ```c void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)); ``` | 参数 | 含义 | |------|------| | `base` | 指向待排序数组首元素的指针(即数组名) | | `nmemb` | 数组中元素的个数(number of members) | | `size` | 每个元素的大小(以字节为单位,可用 `sizeof` 获取) | | `compar` | 指向比较函数的函数指针 | > 🔁 返回值:无(`void`),原地排序。 --- ### 🧠 核心思想:通过“比较函数”自定义排序规则 因为 `qsort` 不知道你数组里存的是 `int`、`double` 还是结构体,所以它要求你写一个 **比较函数** 来告诉它:“两个元素谁大谁小”。 这个比较函数决定了最终的排序顺序。 --- ## ✅ 使用步骤详解(以本题为例) ### 步骤 1:准备数据类型和数组 ```c struct Game { int t; // 截止时间 int w; // 罚款 } games[MAXN]; ``` 我们有一个 `games` 数组,共 `n` 个元素。 --- ### 步骤 2:调用 `qsort` ```c qsort(games, n, sizeof(struct Game), cmp); ``` - `games`:数组名 → 指向第一个元素 - `n`:共有 `n` 个游戏 - `sizeof(struct Game)`:每个元素占多少字节(通常是 8 字节) - `cmp`:你自己写的比较函数名(会被当作函数指针传递) --- ### 步骤 3:编写比较函数 `cmp` ```c int cmp(const void *a, const void *b) { struct Game *gameA = (struct Game *)a; struct Game *gameB = (struct Game *)b; return gameB->w - gameA->w; // 降序排罚款 } ``` #### 🔍 为什么参数是 `const void *`? - `void *` 表示“指向未知类型的指针”,`qsort` 不关心具体类型 - `const` 表示不修改原始数据 - 在函数内部必须将其转换为你实际的数据类型(如 `(struct Game *)`) #### 🔍 返回值含义(关键!) | 返回值 | 含义 | |--------|------| | < 0 | `a` 应该排在 `b` 前面(升序逻辑) | | == 0 | `a` 和 `b` 相等,顺序任意 | | > 0 | `a` 应该排在 `b` 后面 | > ⚠️ 注意:这是 **相对顺序判断**,不是数学意义上的 `a - b` --- ### ✅ 示例说明:按整数升序排序 ```c int arr[] = {5, 2, 8, 1}; qsort(arr, 4, sizeof(int), cmp_int); int cmp_int(const void *a, const void *b) { int va = *(int *)a; // 解引用获取值 int vb = *(int *)b; return va - vb; // 升序:小的在前 } ``` 结果:`{1, 2, 5, 8}` - 若 `va=2`, `vb=5` → `2-5 = -3 < 0` → `a` 排前面 ✔️ - 若 `va=5`, `vb=2` → `5-2 = 3 > 0` → `a` 排后面 ✔️ --- ### ✅ 按整数降序排序 ```c return vb - va; // 或者 -(va - vb) ``` 结果:`{8, 5, 2, 1}` --- ### ✅ 对字符串数组排序(按字典序) ```c char *names[] = {"Bob", "Alice", "Charlie"}; qsort(names, 3, sizeof(char*), cmp_str); int cmp_str(const void *a, const void *b) { char *sa = *(char **)a; // 注意双重指针 char *sb = *(char **)b; return strcmp(sa, sb); // 字典序升序 } ``` --- ### ✅ 安全建议:避免溢出与错误类型转换 ❌ 错误写法(可能溢出): ```c return big_num - small_num; // 如果一个是很大的正数,一个是负数,会溢出 ``` ✅ 推荐写法(安全): ```c if (va < vb) return -1; if (va > vb) return 1; return 0; ``` 或使用三目运算符: ```c return (va > vb) ? 1 : (va < vb) ? -1 : 0; ``` --- ### ✅ 常见错误总结 | 错误 | 说明 | |------|------| | 忘记包含 `<stdlib.h>` | 编译报错或警告 | | 比较函数返回类型不是 `int` | 错误 | | 比较函数参数不是 `const void*` | 类型不匹配 | | 在比较函数中修改了数据 | 虽然语法允许,但违反原则 | | `sizeof` 写错类型 | 如 `sizeof(int*)` vs `sizeof(int)` | | 数组长度传错 | 导致部分未排序或越界 | --- ### ✅ 小结:记住一话 > **`qsort` 把数组交给你的比较函数去“裁决”每一对元素的位置关系。** 只要你能回答:“这两个元素谁应该在前面?”这个问题,`qsort` 就能完成整个排序。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值