为什么我用dev c++运行,输入英文没有结果
#include <stdio.h>int main()
{
int count=0;
printf("请输入英语句子");
while(getchar()!='\n')
{count=count+1;
}
printf("字符数为%d",count);
return 0 ;
} 本帖最后由 jackz007 于 2019-10-8 17:07 编辑
不能啊,看看我的:
#include <stdio.h>
int main()
{
int count = 0 ;
printf("请输入英语句子") ;
while(getchar()!='\n')count ++ ;
printf("字符数为%d\n" , count) ;
getchar() ;
}
C:\Bin>g++ -o x x.c
C:\Bin>x
请输入英语句子I Love China !
字符数为14
C:\Bin> 本帖最后由 liyiqi 于 2019-10-8 17:25 编辑
jackz007 发表于 2019-10-8 17:05
不能啊,看看我的:[/q
谢谢,由于大神的贴子,我的运行器好呢 本帖最后由 jackz007 于 2019-10-8 17:23 编辑
liyiqi 发表于 2019-10-8 17:19
为什你的行,但我的不行,求回复。谢谢
你说不行,有什么依据,说说看,我可是给出运行实况了,你的呢? #include<malloc.h>
#include<stdio.h>
#include<stdlib.h>
//using namespace std;
typedefintelemtype;
typedefstructnode //结点类型定义
{
elemtypedata;
structnode*next;
} LinkList,node;
LinkList*Init_LinkList()/*初始化空的单链表*/
{ elemtypeix;
LinkList*head, *p;
head = (LinkList *) malloc ( sizeof( LinkList ) );
head->next = NULL;
return(head);
}
LinkList*Create_LinkListF()/*头插法建立带头结点的单链表函数*/
{ elemtypeix;
LinkList*head, *p;
head = (LinkList *) malloc ( sizeof( LinkList ) );
head->next = NULL;
printf("请输入数据直到输入0结束:\n");
scanf("%d", &ix);
while (ix != 0)
{ p = (LinkList *) malloc( sizeof( LinkList ) ); //①
p->data = ix; //②
p->next = head->next; //③
head->next = p; //④
scanf("%d", &ix);
}
return(head);
}
LinkList *Create_LinkListR( ) /*尾插法建立带头结点的单链表函数*/
{ elemtypeix;
LinkList*head, *p, *tail;
head = (LinkList *) malloc ( sizeof( LinkList ) );
head->next = NULL; tail = head;
printf("请输入数据直到输入0结束:\n");
scanf("%d", &ix);
while (ix != 0)
{ p = (LinkList *) malloc( sizeof( LinkList ) );
p->data = ix;
tail->next = p;
tail = p;
tail->next = NULL;
scanf("%d", &ix);
}
return( head );
}
void Print_LinkList( LinkList*head)//输出
{ LinkList*p = head->next;
while(p != NULL)
{ printf("%d ", p->data);
p = p->next;
}
}
int LinkList_Length (LinkList*head )//求长度
{ LinkList*p = head; /*p指向头结点*/
intj = 0;
while( p->next)
{ p=p->next; /*p所指的是第j个结点*/
j ++;
}
returnj;
}
//按序号查找: 从链表的第一个结点起,判断当前结点是否是第i个,
//若是,则返回该结点的指针,否则继续下一个,直到表结束为止。没有第i个结点时返回空。
LinkList *GetData_LinkList(LinkList *head, int i)//返回第i个节点的指针
{ LinkList *p; intj = 0;
if (i <= 0) return NULL;
p = head;
while( p->next && j < i )
{ p = p->next;
j ++;
}
if ( i == j) returnp;
else returnNULL;
}
//按值查找:
//从链表的第一个结点起,判断当前结点是否等于key,若是,则返回该结点的指针,
//否则继续下一个,直到表结束为止。找不到时返回空。
LinkList *Search_LinkList(LinkList*head, elemtypekey)//返回值为key的地址
{ LinkList *p;
p = head->next;
while( p)
if ( p->data != key )
p = p->next;
else
break;
returnp;
}
//后插运算算法
void InsertAfter_LinkList(LinkList *p, elemtypex)//在结点p后面插入值为x的节点
{ LinkList*s;
s = (LinkList *) malloc ( sizeof( LinkList ) );
// ①生成新结点
s->data = x; //②新结点赋值
s->next = p->next; //③新结点链入
p->next = s; //④修改前趋结点的后向链
}
//在指定位置i插入x
int InsertNo_LinkList(LinkList*head,elemtype x,int i)
{
LinkList*p;
if(i<=0)p=NULL;
else if(i==1)p=head;
else
p=GetData_LinkList(head,i-1);
if(p==NULL)
{
return 0;
}
else
{
InsertAfter_LinkList(p,x);
return 1;
}
}
//删除后继结点算法
/*删除p的后继结点,成功返回1;否则返回0*/
intDeleteAfter_LinkList(LinkList *p)
{ LinkList *r;
if ( !p ) { return 0;}
r = p->next;
if ( !r )
{ return 0; }
p->next = r->next;
free( r );
return( 1 );
}
//删除单边表head的指定结点p
int DeleteNode_LinkList(LinkList*head,LinkList*p)
{
LinkList*r;
if(p->next!=NULL)
{
p->data=p->next->data;
return(DeleteAfter_LinkList(p));
}
else
{
r=head;
while(r->next!=p)
r=r->next;
return(DeleteAfter_LinkList(r));
}
}
//删除指定位置的结点:在带头结点的链表中删除第i个结点。删除第i个结点,就必须找到它的前驱结点,
//即第i – 1个结点p,然后再删除p的后继结点。
intDeleteNo_LinkList( LinkList *head, inti ) /*删除成功返回1,否则返回0*/
{ LinkList *p, *r;
if ( i == 0)p = NULL;
else if (i == 1 ) p = head;
elsep = GetData_LinkList(head, i-1);/*搜索第i-1个结点*/
if ( p == NULL)
{
return 0;
}
else
{ r = p->next; p->next = r->next; /*删除指定结点*/
free( r );
return1;
}
}
//将已存在的单链表的所有结点删除,释放其所占用的存储空间,使其成为带头结点的空链表。
LinkList * SetNull_LinkList(LinkList *head)
{ while (head->next)
DeleteAfter_LinkList(head); /*依次删除每个结点*/
return head;
}
页:
[1]