本文目录一览:
- 1、用c语言设计线性顺序表,求前驱,后进的问题。
- 2、字母前驱后驱c语言怎么表示
- 3、C语言的前驱后继问题
- 4、C语言中的前趋结点是什么
- 5、C语言:求前驱和后继字母。输入一个大写字母,求对应的小写字母及它的前驱和后继
- 6、C语言中前驱后继字符是什么?下面程序怎么写
用c语言设计线性顺序表,求前驱,后进的问题。
下面是我该完的程序。请运行一下,我改的地方都加了注释”//这里修改了“
#include stdio.h
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define OVERFLOW -2
#define MAXSIZE 100
typedef int status;
typedef int elemtype;
typedef struct {
elemtype elem[MAXSIZE];
int length;
}sqlist;
/*初始化*/
status initlist(sqlist *l){
l-length=0;
return OK;
}
/*销毁*/
status destroylist(sqlist *l){
l-length=0;
return OK;
}
/*顺序表置空*/
status clearlist(sqlist *l){
l-length=0;
return OK;
}
/*求顺序表长度*/
int listlength(sqlist l){
return l.length;
}
/*顺序表空否*/
status listempty(sqlist l){
if( l.length) return FALSE;
else return TRUE;
}
/*查找*/
int locateelem(sqlist l,elemtype e){
int i=0;
while(il.length)
if (l.elem[i++]==e) return i;
return 0;
}
/*读第i个元素*/
status getelem(sqlist l,int i,elemtype *e){
if((i1)||(il.length)) return ERROR;
*e=l.elem[i-1];
return OK;
}
/*求前驱*/
status priorelem(sqlist l,elemtype cur_e,elemtype *pre_e){
int i;
i=locateelem(l,cur_e);
if((i==0)||(i==1)) {*pre_e='no';printf(" 没有前驱 ");;return ERROR;} //这里修改了
else //这里修改了
{
*pre_e=l.elem[i-2];
return OK;
}
}
/*求后继*/
status nextelem(sqlist l,elemtype cur_e,elemtype *next_e){
int i;
i=locateelem(l,cur_e);
if((i==0)||(i==l.length)){ *next_e='no';printf(" 没有后继 ");return ERROR;} //这里修改了
else //这里修改了
{
*next_e=l.elem[i];
return OK;
}
}
/*在第i个位置插入元素e*/
status listinsert(sqlist *l,int i,elemtype e){
int j;
if((i1)||(il-length+1)) return ERROR;
for(j=l-length;ji-1;j--) l-elem[j]=l-elem[j-1];
l-elem[i-1]=e;
l-length++;
return OK;
}
/*删除第i个元素*/
status listdelete(sqlist *l,int i,elemtype *e){
int j;
if((i1)||(il-length)) return ERROR;
*e=l-elem[i-1];
for(j= i;j l-length;j++) l-elem[j-1]=l-elem[j];
l-length--;
return OK;
}
/*遍历*/
status listtraverse(sqlist l){
int i;
for(i=1;i=l.length;i++)
printf("%d ",l.elem[i-1]);
printf("\n");
return OK;
}
/*建立顺序表*/
status listcreate(sqlist *l){
int i=0;
elemtype e;
printf("input data(end by -1):");
scanf("%d",e);
while(e!=-1){
l-elem[i++]=e;
scanf("%d",e);
}
l-length=i;
return OK;
}
/*主函数*/
main(){
sqlist la,lb,lc;
int i;
elemtype e,pre_e,next_e;
listcreate(la);
listtraverse(la);
printf("the length of the list is %d\n",listlength(la));
printf("input i and e for insert:");
scanf("%d %d",i,e);
if(listinsert(la,i,e)) listtraverse(la);
else printf("i is error!\n");
printf("input i :");
scanf("%d",i);
getelem(la,i,e);
printf("the element is %d ,",e);
priorelem(la,e,pre_e);
nextelem(la,e,next_e);
if(pre_e!='no')printf("the priore is %d\n",pre_e); //这里修改了
if(next_e!='no')printf("the next is %d\n",next_e); //这里修改了
listdelete(la,i,e);
listtraverse(la);
}
字母前驱后驱c语言怎么表示
在C语言中
字符的直接前驱:'b'-1
字符的直接后继:'b'+1
注意输出的时候用控制符%c,比如
printf('%c','b'-1);
C语言的前驱后继问题
#include stdio.h
void main()
{
char c1, c2, c3;
printf("input a letter\n");
scanf("%c",c1);
c2 = c1 - 1;
c3 = c1 + 1;
if (c1 == 'a')
c2 = 'z';
if (c1 == 'z')
c3 = 'a';
printf("%c,%c\n",c2,c3);
}
不谢
C语言中的前趋结点是什么
前驱结点是线性表或链表等数据存储结构中的一个概念,当前结点的前一个结点称为直接前驱结点。
举例说明如下:
1、对于线性表存储结构:
1, 2, 3, 4, 5, ......, k, k+1, .......
则结点k+1的直接前驱结点为结点k
2、对于链表存储结构
// 结点的定义
struct node
{
int data; // 数据域
struct node *next; // 指针域
};
struct node *Head; // Head表示链表的头结点,则Head-next为头结点Head的后继结点;Head为Head-next的前驱节点
C语言:求前驱和后继字母。输入一个大写字母,求对应的小写字母及它的前驱和后继
楼主你好。
#includestdio.h
int main()
{
char ch,ch1,ch2;
scanf("%c",ch);
if(ch='B'ch='Y'){
ch1=ch+31;
ch2=ch+33;
}else if(ch=='A'){
ch1='-';
ch2=ch+33;
}else {
ch1=ch+31;
ch2='-';
}
printf("%c %c\n",ch1,ch2);
return 0;
}
ch,ch1,ch2应该声明为char类型。
你原先定义成为int类型会导致条件判断的时候总是进入最后一个else中。所以只有前驱,没有后继。
C语言中前驱后继字符是什么?下面程序怎么写
前驱就是前面的字符,比如b的前驱就是a,后继是一样的,那无非就是强制转化,读一个char ,强制为int,输出的就是它的码,让char加一就是后继,减一就是前驱