用 C 语言趣味输出186


需求:输出一个简单的图案或文字。

代码:```c
#include
int main() {
printf("我是 C 语言!");
return 0;
}
```

需求:输出一个更复杂的图案或文字,使用循环和条件语句。

代码:```c
#include
int main() {
int i, j, n;
printf("请输入边长:");
scanf("%d", &n);
// 输出上半部分
for (i = 0; i < n; i++) {
for (j = 0; j < n - i - 1; j++) {
printf(" ");
}
for (j = 0; j < 2 * i + 1; j++) {
printf("*");
}
printf("");
}
// 输出下半部分
for (i = n - 2; i >= 0; i--) {
for (j = 0; j < n - i - 1; j++) {
printf(" ");
}
for (j = 0; j < 2 * i + 1; j++) {
printf("*");
}
printf("");
}
return 0;
}
```

需求:输出一个高度可定制的高级图案或文字,使用指针、动态内存分配和其他高级技术。

代码:```c
#include
#include
// 分配二维字符数组
char allocate_2d_array(int rows, int cols) {
char array = malloc(rows * sizeof(char*));
for (int i = 0; i < rows; i++) {
array[i] = malloc(cols * sizeof(char));
}
return array;
}
// 释放二维字符数组的内存
void free_2d_array(char array, int rows) {
for (int i = 0; i < rows; i++) {
free(array[i]);
}
free(array);
}
// 使用递归输出图案
void print_pattern(char array, int rows, int cols) {
if (rows == 0 || cols == 0) {
return;
}
// 输出第一行
for (int i = 0; i < cols; i++) {
printf("%c", array[0][i]);
}
printf("");
// 递归输出剩余部分
print_pattern(array + 1, rows - 1, cols);
}
int main() {
int rows, cols;
printf("请输入行数:");
scanf("%d", &rows);
printf("请输入列数:");
scanf("%d", &cols);
// 分配二维数组
char array = allocate_2d_array(rows, cols);
// 输入图案
printf("请输入图案:");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
scanf(" %c", &array[i][j]);
}
}
// 输出图案
print_pattern(array, rows, cols);
// 释放内存
free_2d_array(array, rows);
return 0;
}
```

2025-01-27


上一篇:C语言函数判断数据类型

下一篇:C 语言函数:巧妙转化数据类型