太复杂了,有简单一点的c语言代码吗
时间: 2024-03-13 13:44:35 浏览: 61
当然可以,以下是一份更简单的 C 代码实现:
```c
#include <stdio.h>
int main() {
char queue[101];
scanf("%s", queue); // 输入小朋友队列
int i = 0, j = 0, n = 0;
while (queue[i]) { // 统计小女孩的数量
if (queue[i] == 'G') n++;
i++;
}
while (n--) { // 输出每对手拉手的小朋友的编号
while (queue[j] == 'B') j++; // 找到下一个小男孩
printf("%d ", j);
while (queue[j] == 'G' || queue[j] == 0) j++; // 找到他手拉手的小女孩
printf("%d\n", j);
}
return 0;
}
```
这份代码的思路是:先统计小女孩的数量,然后逐个输出每对手拉手的小朋友的编号。我们用两个指针 `i` 和 `j` 来扫描队列,其中 `i` 用于统计小女孩的数量,`j` 则用于输出每对手拉手的小朋友的编号。具体实现时,我们先找到下一个小男孩,输出他的编号,然后再找到他手拉手的小女孩,输出她的编号。不断循环这个过程,直到所有的小女孩都离开了队列。
相关问题
蠕虫代码c语言简单一点
以下是一个简单的蠕虫程序示例,它使用C语言编写:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#define TARGET_IP "192.168.1.100" // 蠕虫目标IP地址
#define TARGET_PORT 1234 // 蠕虫目标端口号
#define BUFFER_SIZE 1024 // 缓冲区大小
int main() {
int sockfd, connfd;
struct sockaddr_in servaddr, cliaddr;
char buffer[BUFFER_SIZE];
char *msg = "Hello, World!";
// 创建套接字
sockfd = socket(AF_INET, SOCK_STREAM, 0);
// 设置服务器地址
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = inet_addr(TARGET_IP);
servaddr.sin_port = htons(TARGET_PORT);
// 连接目标机器
connfd = connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
// 发送消息
send(connfd, msg, strlen(msg), 0);
// 接收消息
recv(connfd, buffer, BUFFER_SIZE, 0);
// 关闭连接
close(connfd);
close(sockfd);
return 0;
}
```
这是一个非常简单的蠕虫程序,它仅连接到指定的IP地址和端口号,并发送一条消息。请注意,这个程序并没有传播自己,它只是连接到指定的目标机器并执行指定的操作。在实际应用中,蠕虫程序通常会利用漏洞或其他方法传播自己,因此需要更加复杂的代码来实现这个功能。
超市管理系统c语言代码丰富一点
超市管理系统通常是一个大型项目,涉及到库存管理、商品信息、购物车功能以及销售数据处理等模块。在C语言中编写这样的系统可能会比较复杂,因为C语言本身相对底层,适合处理操作系统级的任务。以下是一个非常简化的示例,展示了如何用C语言创建一个简单的命令行版超市管理系统的基本框架:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
char name[50];
int stock;
} Product;
void display_products() {
// 这里只是一个占位,实际需要连接数据库或读取文件获取产品信息
printf("产品信息:\n");
}
void add_product(Product* products) {
// 添加新产品
}
void remove_product(Product* products, char* name) {
// 删除指定产品的库存
}
void update_stock(Product* products, char* name, int new_stock) {
// 更新产品库存
}
int main() {
Product products[] = {{"牛奶", 100}, {"面包", 50}};
int num_products = sizeof(products) / sizeof(products[0]);
while (1) {
printf("请输入操作(1.显示产品 2.添加产品 3.删除产品 4.更新库存): ");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
display_products();
break;
case 2:
add_product(&products);
break;
case 3:
char product_name[50];
scanf("请输入要删除的产品名: %s", product_name);
remove_product(&products, product_name);
break;
case 4:
char product_name[50];
int new_stock;
scanf("请输入要更新的产品名和新库存: %s %d", product_name, &new_stock);
update_stock(&products, product_name, new_stock);
break;
default:
printf("无效的选择,退出程序...\n");
return 0;
}
}
return 0;
}
```
这只是一个非常基础的例子,实际的超市管理系统会更复杂,需要考虑错误处理、用户界面设计、数据持久化、并发控制等因素,并可能使用数据库存储数据。此外,C++或者一些现代C库如SQLite或JSON-C可以提供更好的支持。
阅读全文