1. 二维数组转置
#include <stdio.h>
// 转置函数
void transpose(float arr[5][5]) {
float temp;
for (int i = 0; i < 5; i++) {
for (int j = i + 1; j < 5; j++) {
temp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = temp;
}
}
}
int main() {
float arr[5][5] = { {1.1,2.2,3.3,4.4,5.5},
{6.6,7.7,8.8,9.9,1.2},
{2.3,3.4,4.5,5.6,6.7},
{7.8,8.9,9.0,1.3,2.4},
{3.5,4.6,5.7,6.8,7.9} };
transpose(arr);
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
printf("%.1f ", arr[i][j]);
}
printf("\n");
}
return 0;
}
2. 递归求斐波那契数列
#include <stdio.h>
// 递归函数
int fibonacci(int n) {
if (n == 1 || n == 2) return 1;
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
int n;
printf("输入 n:");
scanf("%d", &n);
printf("斐波那契第 %d 项:%d\n", n, fibonacci(n));
return 0;
}
3. 选择排序字符数组
#include <stdio.h>
// 选择排序函数
void selectSort(char arr[], int n) {
char temp;
for (int i = 0; i < n - 1; i++) {
int min = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[min]) min = j;
}
temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
int main() {
char arr[10];
printf("输入 10 个字符:");
for (int i = 0; i < 10; i++) {
scanf(" %c", &arr[i]);
}
selectSort(arr, 10);
printf("排序后:");
for (int i = 0; i < 10; i++) {
printf("%c ", arr[i]);
}
return 0;
}
4. 指针实现从大到小输出
#include <stdio.h>
// 交换并输出函数
void swapPrint(int *a, int *b) {
if (*a < *b) {
int temp = *a;
*a = *b;
*b = temp;
}
printf("%d %d\n", *a, *b);
}
int main() {
int x, y;
printf("输入两个数:");
scanf("%d %d", &x, &y);
swapPrint(&x, &y);
return 0;
}
5. 学生信息排序
#include <stdio.h>
// 学生结构体
typedef struct {
int id;
char name[20];
char gender;
int age;
char addr[50];
float chinese, math, english;
float avg;
} Student;
// 排序函数(冒泡排序实现)
void sortStudents(Student students[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (students[j].avg > students[j + 1].avg ||
(students[j].avg == students[j + 1].avg && students[j].id > students[j + 1].id)) {
Student temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
}
int main() {
Student students[10];
// 输入学生信息
for (int i = 0; i < 10; i++) {
printf("输入第 %d 个学生信息(学号 姓名 性别 年龄 家庭住址 语文 数学 英语):\n", i + 1);
scanf("%d %s %c %d %s %f %f %f",
&students[i].id, students[i].name, &students[i].gender,
&students[i].age, students[i].addr,
&students[i].chinese, &students[i].math, &students[i].english);
students[i].avg = (students[i].chinese + students[i].math + students[i].english) / 3;
}
// 输出排序前
printf("\n排序前:\n");
for (int i = 0; i < 10; i++) {
printf("学号:%d 姓名:%s 平均分:%.2f\n", students[i].id, students[i].name, students[i].avg);
}
// 排序
sortStudents(students, 10);
// 输出排序后
printf("\n排序后:\n");
for (int i = 0; i < 10; i++) {
printf("学号:%d 姓名:%s 平均分:%.2f\n", students[i].id, students[i].name, students[i].avg);
}
return 0;
}
6. 字符写入文件
#include <stdio.h>
int main() {
char ch;
FILE *fp = fopen("output.txt", "w");
if (fp == NULL) {
printf("文件打开失败!\n");
return 1;
}
printf("输入 20 个字符:");
for (int i = 0; i < 20; i++) {
scanf(" %c", &ch);
fputc(ch, fp);
}
fclose(fp);
printf("字符已写入文件 output.txt\n");
return 0;
}