C语言每日一题
时间: 2025-06-25 16:04:38 浏览: 21
### C语言每日一题及相关编程练习
以下是几个经典的C语言编程练习以及它们的相关背景:
#### 练习1:计算最大公因数和最小公倍数
此练习要求用户输入两个正整数,然后不借助库函数来求解这两个数的最大公因数(GCD)和最小公倍数(LCM)。该问题可以通过辗转相除法解决[^3]。
```c
#include <stdio.h>
int gcd(int a, int b);
int lcm(int a, int b);
int main() {
int a, b;
printf("请输入两个正整数:\n");
scanf("%d %d", &a, &b);
int gcdResult = gcd(a, b);
int lcmResult = lcm(a, b);
printf("最大公因数是: %d\n", gcdResult);
printf("最小公倍数是: %d\n", lcmResult);
return 0;
}
// 辗转相除法实现 GCD
int gcd(int a, int b) {
int temp;
while (b != 0) {
temp = a % b;
a = b;
b = temp;
}
return a;
}
// LCM 的计算基于 GCD
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
```
#### 练习2:字符串加密
给定一个字符串,将其转换为密码形式。具体来说,对于每一个字符,用其后第4个字母替代原字母。例如,“China”应被替换为“Glmre”。这一练习涉及基本的ASCII操作[^4]。
```c
#include<stdio.h>
#include<string.h>
int main() {
char s[100];
gets(s);
int len, i;
len = strlen(s);
for(i = 0; i < len; i++) {
s[i] += 4;
}
puts(s);
return 0;
}
```
#### 练习3:选择排序算法
选择排序是一种简单的排序技术,适用于小型数据集。它的核心思想是从未排序部分找到最小值,并将其放置于已排序序列的末端。尽管效率不如高级排序算法高,但它易于理解和实现[^5]。
```c
void selectionSort(int arr[], int n) {
int i, j, min_idx;
// 遍历数组中的每个元素
for (i = 0; i < n-1; i++) {
// 寻找剩余未排序元素中的最小者
min_idx = i;
for (j = i+1; j < n; j++)
if (arr[j] < arr[min_idx])
min_idx = j;
// 将发现的最小元素与当前元素交换
int temp = arr[min_idx];
arr[min_idx] = arr[i];
arr[i] = temp;
}
}
```
以上三个例子展示了不同难度级别的C语言编程挑战,涵盖了基础数学运算、字符串处理以及经典算法的应用场景。
阅读全文
相关推荐



















