第五章:新生赛的挑战(1/2)
虾皮小说【www.xpxs.net】第一时间更新《热血编程之薛小松重生福工》最新章节。
时间过得飞快,转眼间就到了新生赛的日期。薛小松这几天一直在紧张地复习和刷题,他的目标很明确——进入ACM集训队。为了这一天,他几乎放弃了所有休息时间,全身心投入到C语言的学习中。他的努力并非没有回报,半个月的高强度训练让他的编程能力有了质的飞跃,从最初的初级一品提升到了初级三品。他甚至在课余时间刷完了《C语言程序设计基础》这本书的所有练习题,还额外学习了一些简单的数据结构知识。
比赛当天,体育馆里坐满了参赛的学生,气氛紧张而热烈。薛小松坐在自己的位置上,深吸一口气,试图平复内心的激动。他知道自己已经准备得很充分了,但比赛的压力仍然让他有些紧张。
“小松,别紧张,你准备得很充分,肯定没问题!”旁边的队友李强拍了拍他的肩膀,轻声说道。李强是薛小松的高中同学,也是他大学里的室友,两人关系一直很好。他虽然没有薛小松那么强的编程基础,但他对比赛的热情丝毫不逊色。
薛小松喃喃道:“希望如此吧,我可不想再错过这次机会。”
“你肯定行的!”李强鼓励道,“要是我有你一半的水平,我也不用在这儿干着急了。”
薛小松笑了笑,没有再说话。他能感受到李强的紧张,毕竟比赛的氛围确实让人有些喘不过气来。
比赛题目很快公布,一共五道题,涵盖了从基础的循环结构到较为复杂的函数和数组应用。薛小松迅速浏览了一遍题目,心中已经有了大致的思路。
他从第一题开始,手指飞快地在键盘上敲击,代码一行行地出现在屏幕上。第一题相对简单,是经典的“水仙花数”问题:找出所有三位数中,其各位数字的立方和等于其本身的数。
```c
#include
int main(){
int i, a, b, c;
printf(“水仙花数有:\n“);
for (i = 100; i < 1000; i++){
a = i / 100;//百位
b =(i / 10)% 10;//十位
c = i % 10;//个位
if (i == a * a * a + b * b * b + c * c * c){
printf(“%d\n“, i);
}
}
return 0;
}
薛小松迅速敲完代码,提交后顺利通过了测试。他松了口气,接着迅速转向第二题。第二题是一道关于数组排序的题目,要求用冒泡排序对一个包含10个整数的数组进行升序排序。
#include
void bubbleSort(int arr[], int n){
int i, j, temp;
for (i = 0; i < n - 1; i++){
for (j = 0; j < n - 1 - i; j++){
if (arr[j]> arr[j + 1]){
temp = arr[j];
arr[j]= arr[j + 1];
arr[j + 1]= temp;
}
}
}
}
int main(){
int arr[]={64, 34, 25, 12, 22, 11, 90, 88, 76, 43};
int n = sizeof(arr)/ sizeof(arr[0]);
bubbleSort(arr, n);
printf(“排序后的数组:\n“);
for (int i = 0; i < n; i++){
printf(“%d“, arr[i]);
}
return 0;
}
凭借这段时间的积累,薛小松很快找到了最优解,顺利拿下第二题。比赛进行到一半时,薛小松已经完成了三道题。他抬头看了看周围,发现很多人都还在为第二题挣扎,心中不禁有些自豪。
“小松,你真厉害,已经做完三题了?”旁边的队友小李惊讶地说道。
薛小松微微一笑:“别夸我,后面还有两题呢,难度可不小。”
但他没有松懈,继续投入到第四题的思考中。第四题是一道较为复杂的函数嵌套问题,要求编写一个函数,计算斐波那契数列的第n项。
薛小松仔细分析题目,脑海中不断模拟各种可能的解法。经过一番努力,他终于找到了一个可行的方案,开始敲代码。
#include
int fibonacci(int n){
if (n <= 0){
return 0;
} else if (n == 1){
return 1;
} else {
return fibonacci(n - 1)+ fibonacci(n - 2);
}
}
int main(){
int n;
printf(“请输入n:“);
本章未完,点击下一页继续阅读。