#include<stdio.h>
#include <stdlib.h>
typedef struct LNode
{ char data;
struct LNode *next;
} LinkNode;
char a[50];
void CreateList(LinkNode *&L,char a[] ,int n)
{ LinkNode *s,*r;
int i;
L=(LinkNode *)malloc(sizeof(LinkNode));
L->next=NULL;
r=L;
for(i=0;i<n;i++)
{ s=(LinkNode *)malloc(sizeof(LinkNode));
s->data=https://bbs.csdn.net/topics/a[i];
r->next=s;
r=s;
}
r->next=NULL;
}
void ReadList(LinkNode *&L,char x)
{
LinkNode *p=L;
int j=0;
while(p!=NULL){
if(p->data=https://bbs.csdn.net/topics/=x)
j++;
p=p->next;
}
printf("%d",j);
}
int main()
{
LinkNode *L;
int i,n;
char x;
scanf("%c %d",&x,&n);
for(i=0;i<n;i++)
scanf("%c ",&a[i]);
printf("%c",a[0]);
CreateList(L,a,n);
ReadList(L,x);
return 0;
}
uj5u.com熱心網友回復:
主函式里面:scanf("%c %d",&x,&n); // 執行完之后, 鍵盤緩沖區里面還保留著回車符號, 后面的scanf %c會回傳回車
getchar(); // 過濾這個回車, 或者用fflush(stdin); 也可
for(i=0;i<n;i++)
scanf("%c ",&a[i]);
void ReadList(LinkNode *&L,char x)
{
LinkNode *p=L->next; // 要改一下,L是空頭, next才是第一個有效的
uj5u.com熱心網友回復:
加入getchar()以后出現了第三行輸入是怎么回事
c 5
c d e s c
c //多出的一行隨便輸入的
2
uj5u.com熱心網友回復:
#include<stdio.h>
#include <stdlib.h>
typedef struct LNode
{ char data;
struct LNode *next;
} LinkNode;
char a[50];
void CreateList(LinkNode *&L,char a[] ,int n)
{
LinkNode *s,*r;
int i;
L=(LinkNode *)malloc(sizeof(LinkNode));
L->next=NULL;
r = L;
for(i=0;i<n;i++)
{
s=(LinkNode *)malloc(sizeof(LinkNode));
s->data=https://bbs.csdn.net/topics/a[i];
r->next=s;
r=s;
}
r->next=NULL;
}
void ReadList(LinkNode *&L,char x)
{
//LinkNode *p=L;
LinkNode *p=L->next;
int j=0;
while(p!=NULL){
if(p->data=https://bbs.csdn.net/topics/=x)
j++;
p=p->next;
}
printf("%d",j);
}
int main()
{
LinkNode *L;
int i,n;
char x;
scanf("%c %d",&x,&n);
getchar();
for(i=0;i<n;i++)
scanf("%c ",&a[i]);
printf("%c", a[0]);
CreateList(L,a,n);
ReadList(L,x);
return 0;
}
供參考~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/115985.html
標籤:C語言
上一篇:初始化單鏈表并插入元素運行出錯
下一篇:大小寫轉換+后移一位
