用c语言写一段程序,功能为可以增加窗口,窗口数量无限制
时间: 2024-02-19 20:03:53 浏览: 156
好的,根据您的要求,我为您编写了一段简单的 C 语言程序实现窗口增加的功能,窗口数量无限制。代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义结构体表示窗口
typedef struct {
int id; // 窗口ID
} Window;
// 定义链表节点结构体
typedef struct Node {
Window *window; // 窗口指针
struct Node *next; // 下一个节点指针
} Node;
// 定义链表结构体
typedef struct {
int size; // 链表大小
Node *head; // 头节点指针
} List;
// 初始化链表
List* initList() {
List *list = (List*)malloc(sizeof(List));
list->size = 0;
list->head = NULL;
return list;
}
// 在链表末尾插入节点
void insert(List *list, Window *window) {
Node *node = (Node*)malloc(sizeof(Node));
node->window = window;
node->next = NULL;
if (list->head == NULL) {
list->head = node;
} else {
Node *p = list->head;
while (p->next != NULL) {
p = p->next;
}
p->next = node;
}
list->size++;
}
// 创建新窗口
Window* createWindow(int id) {
Window *window = (Window*)malloc(sizeof(Window));
window->id = id;
return window;
}
int main() {
List *list = initList(); // 初始化链表
int id = 1; // 初始窗口ID
char c;
while (1) {
printf("Press 'n' to create a new window, or press 'q' to quit: ");
scanf(" %c", &c);
if (c == 'n') {
Window *window = createWindow(id); // 创建新窗口
insert(list, window); // 将新窗口插入链表
printf("Window %d created.\n", id++);
} else if (c == 'q') {
break;
}
}
printf("Quit.\n");
return 0;
}
```
这个程序使用了链表来存储窗口,每次创建新窗口时,都会将其插入到链表末尾。您可以通过按下 'n' 键来创建新窗口,无限制地增加窗口数量,按下 'q' 键退出程序。
阅读全文