为啥崩溃?求解,谢谢
每次输入一个单词统计各个单词输入次数
程序代码:
#include<stdio.h> #include<string.h> #include<stdlib.h> struct tree { char* p_word; int count; struct tree* left; struct tree* right; }; int main() { void output_tree(struct tree*); void input_tree(struct tree*,char*); struct tree* root=NULL; //input char* p=malloc(sizeof(char)*20); setbuf(stdin,NULL); scanf("%s",p); while((*p)!='0') { input_tree(root,p); setbuf(stdin,NULL); p=malloc(20*sizeof(char)); scanf("%s",p); } //output output_tree(root); } void input_tree(struct tree* root,char* p) { if(root==NULL) { root=malloc(sizeof(struct tree)); root->p_word=p; root->count=1; root->left=root->right=NULL; } else if(strcmp(p,root->p_word)==0) root->count++; else if(strcmp(p,root->p_word)<0) input_tree(root->left,p); else if(strcmp(p,root->p_word)>0) input_tree(root->right,p); } void output_tree(struct tree* root) { if(root->left!=NULL) output_tree(root->left); if(root!=NULL) printf("%s:%d\n",root->p_word,root->count); if(root->right!=NULL) output_tree(root->right); }