南开大学算法集锦:C语言解题代码

下载需积分: 3 | TXT格式 | 16KB | 更新于2025-01-07 | 87 浏览量 | 32 下载量 举报
2 收藏
"南开100题是针对C语言编程的一系列经典算法题目集,适合准备二级考试的学习者。" 在"南开100题"中,我们可以看到不同类型的编程挑战,旨在提升解决算法问题的能力。以下是其中四个题目及其解决方案的详细解析: 1. 题目06:找到分数低于平均分的个数 该题目要求编写一个名为`fun`的函数,输入是一个整数数组`score`、数组长度`m`以及一个整数`below`。函数的任务是计算并返回分数数组中低于平均分的元素个数。代码中,首先计算平均分,然后遍历数组,将低于平均分的元素存入`below`数组,并返回个数。 ```c int fun(int score[], int m, int below[]) { int i, k = 0, aver = 0; for (i = 0; i < m; i++) { aver += score[i]; } aver /= m; for (i = 0; i < m; i++) { if (score[i] < aver) { below[k] = score[i]; k++; } } return k; } ``` 2. 题目02:找出既是7的倍数又是11的倍数但不是77的倍数的数 此题目的目标是创建一个名为`fun`的函数,输入是一个整数指针`a`和一个整型指针`n`。函数应填充`a`数组,包含从1到1000之间所有满足条件的数(即能被7或11整除,但不能被77整除),并返回这些数的数量。 ```c void fun(int *a, int *n) { int i, j = 0; for (i = 2; i <= 1000; i++) { if ((i % 7 == 0 || i % 11 == 0) && i % 77 != 0) { a[j++] = i; } } *n = j; } ``` 3. 题目03:找出所有能整除给定数x的非偶数因子 这个题目的`fun`函数接收一个整数`x`,一个整数数组`pp`和一个整型指针`n`。任务是找到所有能整除`x`的非偶数因子,并将它们存储在`pp`数组中,返回因子数量。 ```c void fun(int x, int pp[], int *n) { int i = 1, j = 0, k = 0, *t = pp; for (i = 0; i < x; i++) { if (i % 2 != 0) { t[j] = i; j++; } } for (i = 0; i < j; i++) { if (x % t[i] == 0) { pp[k] = t[i]; k++; } } *n = k; } ``` 4. 题目04:统计字符串中英文字母出现的次数 该题目的`fun`函数接受一个字符串`tt`和一个整数数组`pp`。函数需要统计字符串中每个小写字母出现的次数,结果存储在`pp`数组中,数组下标对应字母在字母表中的位置。 ```c void fun(char *tt, int pp[]) { int i; for (i = 0; i < 26; i++) { pp[i] = 0; } while (*tt) { switch (*tt) { case 'a': pp[0]++; break; case 'b': pp[1]++; break; // ... 继续为其他字母添加case语句,直到'z' } tt++; } } ``` 这些题目涵盖了C语言中的基本操作,如数组操作、循环、条件判断、函数调用等,对于理解和掌握C语言的编程基础非常有帮助。通过解决这些题目,学习者可以提升其算法思维和编程能力,为通过C语言二级考试做好充分准备。

相关推荐

fangzhen2008
  • 粉丝: 1
  • 资源: 1
上传资源 快速赚钱