在一处残破不堪的房檐下,男孩蜷缩着身体偎在泥墙的角落。冬天的风狂暴地撞击它看到的一切,呼呼的风响如死亡的丧钟,敲打在每一个苦命人的心头上。
男孩不知道自己多久没吃饭了,他卖掉了家里的一切去换取食物,可是依然很快就吃光了。男孩的胃又开始疼了,他开始回想上一次的美味。
那天,男孩饥肠辘辘地走在街上,经过了一排排卖小吃的摊位和店铺,食物所散发的气味让他晕头转向,口水直流,他很想不顾一切地冲上去抢一些,可是却不敢行动。
因为妈妈告诉他,偷别人的东西,抢别人的东西,是不对的,老天爷会对他降下严厉的惩罚。男孩曾对妈妈的恐吓将信将疑,直到妈妈病重,他悄悄地从药铺里偷来了几味药,聪明的男孩留意过店主给发烧的病人拿哪些药,连配比都记得清楚。回家后,男孩学着平日妈妈给他熬野菜高粱面粥那样给妈妈熬药喝。男孩坐在床边给靠墙躺着的妈妈喂药。妈妈用虚弱慈祥的目光望着他,眼角析出滚烫的泪水。喂完药后,男孩帮助妈妈躺下,告诉妈妈,明天就会好起来的。男孩靠在妈妈的床边睡着了。他做了个幸福的梦,梦里妈妈起床了,给他熬了最爱喝的野菜高粱面粥,就在妈妈用勺子给他喂粥的那一瞬间,男孩醒了。他爬起来高兴地望向妈妈,可是她没有起床,妈妈的脸色苍白冰冷了,妈妈死了。男孩这时候想起了妈妈的话,老天爷降下给他偷药的惩罚,就是带走了他的妈妈。男孩不敢再去偷了。
男孩继续往前走,他不知道该去哪儿,但他不想停下。路过他的人,他路过的人,会捏住鼻子,用手扇着空气,一边鄙夷地注视他一边快步走开,男孩像是个异物,被全世界排斥着。
不知什么时候,男孩的眼前出现了半碗馄饨,它就那样平静地躺在一张小方桌上,用妈妈喊男孩回家的声音诱惑男孩。屋里的店主正忙着其他事,还没有收拾这残羹剩饭。肠胃的绞痛和迷人的饭香催促着男孩走了进去,走到那张小方桌前,他端起了碗。这时店主看到了男孩,他先是惊讶而后转为愤怒的“啊!”了一声,随后抄起扫帚要赶走这个肮脏晦气的小乞丐。男孩本能地捧着碗逃出去,店主在后面追赶。可怜的男孩,刚出店门没几步就被石头绊倒在了地上,碗被摔的粉碎,瓷片蹦向了四方,那天还没有下雪,馄饨汤在地上留下了浓墨重彩的一笔,馄饨散落在地上,像是几条上了岸的鱼。店主看到了破碎的碗,又愤怒地“啊”了一声,用扫帚狠命地敲了男孩好几下,咒骂了好几句话,又扛着扫帚像个得胜的将士似的回去了。
男孩趴在那儿,躺了好久,他听到自己在哭,泪水从他漆黑的瞳孔里渗出来,痒痒地流过他的脸颊,滴落在地上。街上很热闹,可是在街上的男孩却很感到很孤独。哭声渐渐漫过了男孩耳朵里的其他声音,他哭的越来越大声,他以为自己哭的是这碗没吃上的馄饨,可他不知道,他也在哭他独自一人,哭他悲惨的人生。
“快起来吧”,不知是什么时候,店主又站在了男孩面前,他把男孩从地上提了起来,“别哭了啊,你躺在这儿哭打扰我做生意知道吗,我多做了一碗馄饨,你快去吃吧,吃完赶紧走,懂了吗?”,店主依旧用吼的口气说道,然后搀着男孩坐在了店中最里面的位置,男孩的眼前又出现了一碗馄饨,这次是冒热气的而不是冷的,满满一碗的馄饨。男孩忘记了自己是怎么吃下这碗馄饨的,他感受到了烫的痛觉,也尝到了幸福的味道。
风雪渐渐停息了,太阳露出亲切的面庞,把阳光洒在白皑皑的大地上。一缕光透过破烂的泥墙落在了男孩脏兮兮的小脸上,他睡的正香,短暂的忘记了苦痛,咧着嘴,像是在笑着,不知与什么东西在梦中相遇了。
不知过了多久,在门外,有两个人出现了。“你确定是在这儿吗?”男人向女人问道,“信上提到的就是这儿,不知道孩子还在不在这里?”,女人以叹息的口气答道。这是男孩的舅舅与舅妈,男孩的妈妈临死前托人给他们写信,祈求他们照顾男孩,因为距离远,天气又不好,交通不便,所以他们现在才赶到。随后男人敲起了门,“有人在吗?”,无人应答。
门没有锁,只被几块砖头抵着,男人推开门,与女人一起走了进去,他们看到一个男孩躺在草垛上,男人唤他,没有反应,女人也唤他,也没有反应,于是男人伸手去碰他,他摸到了冰凉僵硬的身体…
春天来了,湛蓝的天上只有几朵云。
——————————————————————————————————————
最近好不想写博客啊,先摆再说。
附一张美图:
为了凑一个标签,我把之前写的冒泡排序放在下面。
#include <stdio.h>
#include <string.h>
struct Pro {
char name[20];
char phone[15];
int age;
int height;
};
void Exchange(char* bf1,char *bf2,int width) //交换函数。
{
int i = 0;
for (i = 0; i < width; i++)
{
char temp = *bf1;
*bf1 = *bf2;
*bf2 = temp;
bf1++;
bf2++;
}
}
void bubble_sort(void* base, int sz, int width, int (*cmp)(const void* e1, const void* e2))//升序
{
int i = 0;
int judge = 0;
for (i = 0; i < sz - 1; i++)
{
int j = 0;
for (j = 0; j < sz - 1 - i; j++)
{
if (cmp((char*)base+ j * width, (char*)base + (j+1) * width)>0)
{
Exchange((char*)base + j * width, (char*)base + (j + 1) * width, width);
judge = 1;
}
}
if (judge == 0)
{
break;
}
}
}
int cmp_age(const void* e1, const void* e2) //比较函数,大返回正数,小返回负数。
{
return ((struct Pro*)e1)->age-((struct Pro*)e2)->age;
}
int cmp_name(const void* e1, const void* e2) //比较函数,大返回正数,小返回负数。
{
return strcmp(((struct Pro*)e1)->name ,((struct Pro*)e2)->name);
}
int cmp_height(const void* e1, const void* e2)
{
return ((struct Pro*)e1)->height - ((struct Pro*)e2)->height;
}
void main()
{
struct Pro p1[] = { {"LiHua","110",16,175} ,{"ZhangSan","120",18,172},{"XiaoLi","119",17,173} };
int sz = sizeof(p1) / sizeof(p1[0]);
bubble_sort(p1,sz , sizeof(p1[0]), cmp_name);//排序方式
int i = 0;
for (i = 0; i < 3; i++)
{
printf("%s,%s,%d,%d\n",p1[i].name,p1[i].phone,p1[i].age,p1[i].height);
}
}