C语言生成一段递归代码
时间: 2023-03-13 11:16:58 浏览: 92
#include <stdio.h>void recurse(int n){
if (n > 0){
printf("%d\n", n);
recurse(n-1);
}
}int main(){
int n = 10;
recurse(n);
return 0;
}代码运行后会输出从10到1的数字,每一个数字占一行。
相关问题
生成一段递归生成二叉树的C语言代码
以下是一段递归生成二叉树的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* left;
struct Node* right;
};
struct Node* newNode(int data) {
struct Node* node = (struct Node*)malloc(sizeof(struct Node));
node->data = data;
node->left = NULL;
node->right = NULL;
return node;
}
struct Node* insert(struct Node* node, int data) {
if (node == NULL) {
return newNode(data);
}
if (data <= node->data) {
node->left = insert(node->left, data);
} else {
node->right = insert(node->right, data);
}
return node;
}
void inorderTraversal(struct Node* node) {
if (node == NULL) {
return;
}
inorderTraversal(node->left);
printf("%d ", node->data);
inorderTraversal(node->right);
}
int main() {
struct Node* root = NULL;
int arr[] = { 5, 3, 7, 1, 9, 4, 2, 6, 8 };
int n = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i < n; i++) {
root = insert(root, arr[i]);
}
inorderTraversal(root);
return 0;
}
```
在上面的代码中,我们定义了一个二叉树的节点结构体 `Node`,其中包含了节点的数据、左子树和右子树。我们使用 `newNode()` 函数创建一个新的节点,使用 `insert()` 函数插入一个新的数据到二叉树中,使用 `inorderTraversal()` 函数对二叉树进行中序遍历输出。
在 `main()` 函数中,我们定义了一个数组 `arr`,然后使用 `for` 循环将数组中的元素逐个插入到二叉树中。最后输出二叉树的中序遍历结果。
使用C语言生成一段接受字符串的代码
在C语言中,要编写一个程序来接收字符串并执行特定操作,如过滤字母并计算字母数量,你可以这样做:
引用[1]中提到的字符串字符全排列示例(仅用于演示递归排列):
```c
#include <stdio.h>
#include <string.h>
void permute(char *str, int l, int r) {
if (l == r)
printf("%s\n", str);
else {
for(int i = l; i <= r; i++) {
char temp = str[l];
str[l] = str[i];
str[i] = temp;
permute(str, l+1, r);
// 恢复原始字符顺序
temp = str[l];
str[l] = str[i];
str[i] = temp;
}
}
}
int main() {
char str[] = "abc";
int n = strlen(str);
permute(str, 0, n-1);
return 0;
}
```
引用[2]中提到的过滤字母并计数的示例:
```c
#include <stdio.h>
#include <ctype.h> // 包含处理字符类型的函数
int count_alpha(char* str) {
int count = 0;
while (*str) {
if(isalpha(*str)) { // 检查字符是否为字母
count++;
}
str++; // 移动指针到下一个字符
}
return count;
}
int main() {
char input_str[] = "ab234$df4";
char filtered_str[strlen(input_str)];
int i = 0;
for(char c : input_str) {
if(isalpha(c)) { // 只保留字母
filtered_str[i++] = c;
}
}
filtered_str[i] = '\0'; // 结束字符串
printf("Filtered string: %s\n", filtered_str);
printf("Number of letters: %d\n", count_alpha(filtered_str));
return 0;
}
```
阅读全文