C语言问题,从键盘输入n个英语单词.输入格式为n,w1,w2,w3…wn,其中n表示随后输入的英语单词个数,将输入的单词以单链表形式储存,如果单词重复出现,则在链表上只保留一个,并统计单词出现的次
C语言问题,从键盘输入n个英语单词.输入格式为n,w1,w2,w3…wn,其中n表示随后输入的英语单词个数,将输入的单词以单链表形式储存,如果单词重复出现,则在链表上只保留一个,并统计单词出现的次
C语言问题,从键盘输入n个英语单词.输入格式为n,w1,w2,w3…wn,其中n表示随后输入的英语
单词个数,将输入的单词以单链表形式储存,如果单词重复出现,则在链表上只保留一个,并统计单词出现的次数.
C语言问题,从键盘输入n个英语单词.输入格式为n,w1,w2,w3…wn,其中n表示随后输入的英语单词个数,将输入的单词以单链表形式储存,如果单词重复出现,则在链表上只保留一个,并统计单词出现的次
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct Link
{
int num;
char *p;
struct Link *next;
}Link;
void Insert(Link *head,char *str)
{
while(head->next!=NULL)
{
head = head ->next;
if(strcmp(str,head->p)==0) { head->num++; return ;}
}
Link *tmp = (Link*)malloc(sizeof(Link));
tmp->p = (char *) malloc(sizeof(str));
strcpy(tmp->p,str);
tmp->num=1;
tmp->next=NULL;
head->next=tmp;
// return node;
}
void print(Link *head)
{
Link *node = head->next;
while(node!=NULL)
{
printf("%s:%d\n",node->p,node->num);
node=node ->next;
}
}
int main()
{
int n;
Link *head=(Link*)malloc(sizeof(Link*));
scanf("%d",&n);
while(n--)
{
char tmp[100];
scanf("%s",tmp);
Insert(head,tmp);
}
print(head);
return 0;
}