太简单了,稍微复杂一点
时间: 2024-03-18 20:42:29 浏览: 45
好的,这是一个稍微复杂一点的基于C语言的人工智能代码:
```
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_INPUT_LENGTH 1000
#define MAX_RESPONSE_LENGTH 1000
typedef struct {
char* input;
char* response;
} record;
record knowledgeBase[] = {
{"你好", "你好!有什么可以帮助你的吗?"},
{"你是谁", "我是一个基于C语言的简单AI程序。"},
{"再见", "再见,祝你有一个愉快的一天!"},
{"", "抱歉,我不知道你在说什么。请重新输入。"}
};
int getResponse(char* input, char* response) {
int i;
for(i = 0; i < sizeof(knowledgeBase)/sizeof(knowledgeBase[0]); i++) {
if(strstr(input, knowledgeBase[i].input) != NULL) {
strcpy(response, knowledgeBase[i].response);
return 1;
}
}
return 0;
}
int main() {
char input[MAX_INPUT_LENGTH];
char response[MAX_RESPONSE_LENGTH];
printf("你好,我是一个基于C语言的简单AI程序。请输入你的问题:\n");
while(1) {
fgets(input, MAX_INPUT_LENGTH, stdin);
input[strlen(input)-1] = '\0';
if(strcmp(input, "exit") == 0) {
printf("再见,祝你有一个愉快的一天!\n");
break;
}
if(getResponse(input, response)) {
printf("%s\n", response);
}
else {
printf("%s\n", knowledgeBase[3].response);
}
}
return 0;
}
```
这个代码比之前的代码复杂一些,它使用了一个结构体数组来存储AI的知识库,每个结构体包含一个输入和一个回复。当用户输入一个问题时,程序会在知识库中查找匹配的输入,并输出相应的回复。如果找不到匹配的输入,则输出一个默认的回复。
此外,这个程序还增加了一个退出功能。当用户输入“exit”时,程序会退出。
阅读全文