当前位置:首页 » 编程语言 » c语言相关的表
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言相关的表

发布时间: 2022-08-21 21:35:24

‘壹’ 急求C语言中的格式字符表

1.%d格式符。它的作用是将其对应的表达式的值按照十进制整数方式输出。

(2)%md格式符。它的作用是按照m指定的宽度进行输出。

(3)%ld格式符。它的作用是将其对应的表达式的值按照长整数方式输出。

(4)%mld格式符。这个格式符的作用和上面的作用一样。

2.%o格式符。它的作用是将其对应的表达式的值按照八进制整数方式输出。

3.%x格式符。它的作用是将其对应的表达式的值按照十六进制整数方式输出。

4.%u格式符。它的作用是将其对应的表达式的值按照十进制无符号整数方式输出。

5.%c格式符。它的作用是将其对应的表达式的值按照字符方式进行输出。

6.%s格式符。它的作用是输出一个字符串。

7.%f格式符。它的作用是将其对应的表达式的值按照实数方式进行输出。

8.%e格式符。它的作用是将其对应的表达式的值按照指数方式进行输出。

9.%g格式符。它的作用是将其对应的表达式的值按照实数与指数方式中较短的一种方式进行输出。

10.%%格式符。它的作用是输出一个百分号。

‘贰’ C语言顺序表!

void error(char * message)
{
fprintf(stderr,"error:%s\n",message);
exit(1);
}
#define listsize 100
typedef int datatype;
typedef struct
{
datatype data[listsize];
int length;
}seqlist;
void initlist(seqlist * L)
{
L->length=0;
}

int insertlist(seqlist *L,datatype x,int i)//不知道你想实现什么 所以这个地方改不了
{
int j;
if(i<1||i>L->length+1)
error("position error");
if(L->length>listsize)
error("overflow");
for(j=L->length-1;j>=i-1;j--)
{
L->data[j+1]=L->data[1];
}
L->data[i-1]=x;
L->length++;
return x;//只能有一个返回值
}
void main()
{
int x,i;
seqlist * l;
l=(seqlist *)malloc(sizeof(seqlist));
initlist(l);
scanf("%d,%d",&x,&i);
insertlist(l,x,i);
}
错误是改完了 最好说明补充一下你的程序 否则后面不知道怎么改

‘叁’ C语言顺序表求解

#include <stdio.h>

#include <stdlib.h>

//malloc函数需要引入stdlib.h

#define OK 0

#define ERROR -1

//自定义宏

typedef struct

{

int data[10];//向量data用于存放表结点

int length;//当前的表长度

}SeqList;//结构体类型

//结构体定义没有任何问题

int InsertList(SeqList *L,int x,int i){

//SeqList类型参数一定要引用地址!!否则任何插入操作均无效!!参考形参与实参的关系

int j;

if((i<1)||(i>(*L).length+1)) return ERROR;

//将新结点 x插入L所指的顺序表的第i个结点ai的位置上

if(i>=10) return ERROR;

//非法位置,退出运行

for(j=(*L).length-1;j>=i-1;j--){

(*L).data[j+1]=(*L).data[j];

}

(*L).data[i-1]=x;

//这里循环将后面的数据依次向后挪动,最后把带插入的数据插入到指定位置

(*L).length=(*L).length+1;

//修改长度

return OK;

}

//表空间溢出,退出运行

//结点后移

//插入x

//表长加1

int DeleteList(SeqList *L,int i)//引用地址!!!!

{

int j;

if(i<1 || i>(*L).length-1) return ERROR;

//从L所指的顺序表中删除第i个结点ai

if(i>10) return ERROR;

//非法位置

for(j=i-1;j<=(*L).length-1;j++){

(*L).data[j]=(*L).data[j+1];

}

//结点前移

(*L).length=(*L).length-1;

//表长减1

return OK;

//同理参考插入操作

}

void main(){

SeqList *list = NULL;//定义指针类型!!!!

int i;

int value;

for(i=0;i<5;i++){

scanf("%d",&value); //输入顺序表的结点

if(list == NULL)

list = (SeqList *)malloc(sizeof(SeqList));

//你自己定义的结构体当然要自己开辟内存空间

(*list).data[i] = value;

}

(*list).length=5;

for(i=0;i<(*list).length;i++)

printf("%d ",(*list).data[i]); //输出顺序表

printf(" ");

if(InsertList(list,0,3)==OK)//插入0到第3个位置

for(i=0;i<(*list).length;i++)

printf("%d ",(*list).data[i]);

//你得先判断插入操作是否成功了才能打印信息!!!!!

printf(" ");

printf("%d ",(*list).length);

if(DeleteList(list,3)==OK)//删除第3个位置的结点

for(i=0;i<5;i++)

printf("%d ",(*list).data[i]);

//你得先判断删除操作是否成功了才能打印信息!!!!!

printf(" ");

printf("%d ",(*list).length);

}

‘肆’ C语言中表,树,栈是什么

都是数据结构

其中栈包括在表里,因为表中有线性表。线性表分为栈(后进先出)和队列(先进先出),而树是一种区别于表的数据结构,有时将其归于图的范畴,特别要注意二叉树并不是树,这些数据结构都是基本功,不光学习C语言的人要会,任何学习编程的人都要掌握

‘伍’ C语言线性表

struct node {
int k1;

node *next;

};
void main() {
int pi =0;
int c=0;
scanf("%d",&pi);
scanf("%d",&c);
node *p, *k;
int kj=1;
p = (node *)malloc(sizeof(node));
p->k1=kj;
kj++;
k = p;
for (int j = 0; j < pi - 1; j++) {
k->next = (node *)malloc(sizeof(node));
k->next->k1=kj;
kj++;
k = k->next;
}
k->next = p;
int o = 0;
while (p != p->next) {
o++;
if (o % c == 0) {
k->next = p->next;
} else {
k = k->next;
}
p = p->next;
}
printf("%d\n",p->k1);

}

‘陆’ C语言链表相关

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#defineMAXSIZE100

typedefstructnode{
charname[21];
intnumber;
charsex;
structnode*next;
}linklist;

linklist*CreateList(){
charname[21]="";
linklist*head,*p;
p=head=(linklist*)malloc(sizeof(linklist));//这是头结点
scanf("%s",name);
while(name[0]!='#'){
p->next=(linklist*)malloc(sizeof(linklist));
strcpy(p->next->name,name);
scanf("%d",&p->next->number);
scanf("%c",&p->next->sex);
p=p->next;
fflush(stdin);
scanf("%s",name);
}
p->next=NULL;
returnhead;
}

voidDelete(linklist*head,linklist*t){
linklist*p=head->next;
while(p)p=p->next;
p->next=t->next;
free(t);
}

linklist*Locate(linklist*head,intnum){
linklist*p=head->next;
while(p){
if(p->number==num)returnp;
p=p->next;
}
returnNULL;
}

voidOutput(linklist*head){
linklist*r=head->next;
while(r){
printf("%s%d%c ",r->name,r->number,r->sex);
r=r->next;
}
}

intmain(void){
intnum;
linklist*L;
linklist*p;
printf("输入学生信息:");
L=CreateList();
Output(L);
fflush(stdin);
printf("输入要删除学生的学号:");
scanf("%d",&num);
p=Locate(L,num);
if(p==NULL){
printf("No ");
return1;
}
else{
Delete(L,p);
Output(L);
}
return0;
}

‘柒’ 用C语言编写一个有关顺序表的程序代码

#include<stdio.h>
#include<stdlib.h>

#define Size 50

//定义顺序表结构体类型

typedef struct Table{
int*head;//顺序表头指针,为整型
int length;//顺序表中元素个数
int size; //顺序表的长度
}Table;

//创建顺序表
Table CreateTable(){
Table T;
if(!(T.head=(int*)malloc(Size*sizeof(int)))){
printf("内存分配错误!\n");
exit(0);
}

T.size=Size;
T.length=0;
return T;
}

//增加
void Insert(Table T,int set,int values)//set为插入的位置,values为值
{
//首先判断插入位置是否正确
if(set<0||set>T.length){
printf("插入位置不正确!\n");
reutrn;
}

//判断是否有足够的内存空间存储增加的数
if(T.length==T.size){
if(!(T.head=(int*)realloc(T.head,(T.size+10)*sizeof(int)))){
printf("内存分配错误!\n");
exit(0);
}
T.size+=10;
}

//插入数据
for(int i=s.length;i>set;i--)
T.head[i]=T.head[i-1];

T.head[set]=values;
T.length++;
}

//删除
void Delete(Tabel T,int set)
{
if(set<0||set>=T.length)
{
printf("删除数的位置不争确,删除失败!\n");
return;
}

//输出数据
for(int i=set;i<s.length;i++)
T.head[i]=T.head[i+1];
T.length--;
}

//查找
int Search(Tabel T,int value)
{
for(int i=0;i<T.length;i++)
if(T.head[i]==value)
return i;
return -1;
}

‘捌’ C语言编写线性表相关的

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef int ElemType;
//typedef struct
//{
// Elemtype *list;
// int size;
// int maxsize;
//}SqList;typedef struct List
{
ElemType *list;
int size;
int maxsize;
}List,*SqlList;typedef struct sNode
{
ElemType data;
struct sNode *next;
}sNode,*LinkList;int InitList_Sq(List &L)
{
L.list=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L.list)
exit(OVERFLOW);
L.size=0;
L.maxsize=LIST_INIT_SIZE;
return OK;
}int ListInsert_Sq(List &L,int i,ElemType e)
{
ElemType *p,*q,*newbase;
if(i<1||i>L.size+1)
return ERROR;
if(L.size>=L.maxsize)
{
newbase=(ElemType *)realloc(L.list,(L.maxsize+LISTINCREMENT)*sizeof(ElemType));
if(!newbase)
exit(OVERFLOW);
L.list=newbase;
L.maxsize+=LISTINCREMENT;
}
q=&(L.list[i-1]);
for(p=&(L.list[L.size-1]);p>=q;--p)
*(p+1)=*p;
*q=e;
++L.size;
return OK;
}int ListDelete_Sq(List &L,int a,int b) /*删除*/
{
ElemType *x,*y;
int j=0;
while(j<L.size)//j<i-1
{
if(L.list[j]>=a&&L.list[j]<=b)
{
x=&(L.list[j]);//要删除的数
y=L.list+L.size-1;
for(++x;x<=y;++x)
*(x-1)=*x;
--L.size;
}
else
++j;
}
/*if(!p||j>i-1)
return ERROR;*/ /*int i;
ElemType *p;
if(i<1||i>L.size)
return ERROR;
p=&(L.list[i-1]);
e=*p;
q=L.list+L.size-1;
for(++p;p<=q;++p)
*(p-1)=*p;
--L.size;*/
return OK;
}
int ListDestory_Sq(List &L)
{
free(L.list);
L.size=0;
return OK;
}int InitList_Link(LinkList &L,int n)
{
int i;
LinkList p;
L=(LinkList)malloc(sizeof(sNode));
L->next=NULL;
/*for(i=n;i>0;--i)
p=(LinkList)malloc(sizeof(sNode));
scanf("%d",&p->data);
p->next=L->next;
L->next=p;*/
return OK;
}int ListInsert_Link(LinkList &L,int i,ElemType e)
{
LinkList p=L,s;
int j=0;
while(p&&j<i-1)
{
p=p->next;
++j;
}
if(!p||j>i-1)
return ERROR;
s=(LinkList)malloc(sizeof(sNode));
s->data=e;
s->next=p->next;
p->next=s;
return OK;
}
int ListDelete_Link(LinkList &L,int i,ElemType &e)
{
LinkList p=L,q;
int j=0;
while(p->next&&j<i-1)
{
p=p->next;
++j;
}
if(!(p->next)||j>i-1)
return ERROR;
q=p->next;
p->next=q->next;
e=q->data;
free(q);
return OK;
}
int ListDestory_Link(LinkList &L)
{
LinkList p,r=L;
p=L->next;//L为头结点
while(p)
{
r->next=p->next;
free(p);
p=r->next;
}
return OK;
}int CountEqualx(LinkList L,int x)
{
int sum=0;
LinkList p;
p=L->next;//L为头结点
while(p)
{
if(p->data==x)
sum++;
p=p->next;
}
return sum;
}int SelectMax(LinkList L)
{
int max;
LinkList p=L->next;
if(p)
{
//p=L->next;//L为头结点
max=p->data;
while(p)
{
if(p->data>max)
max=p->data;
p=p->next;
}
return max;
}
else
{
printf("\n链表为空!\n");
exit(1);
}

}int main()
{
int i,j,a,b,x;
List L;
LinkList Link,p;
ElemType e; //顺序表操作
InitList_Sq(L);
for(i=0;i<10;i++)
ListInsert_Sq(L,1,i);//在第1个位置插入i
printf("\n顺序表删除前: ");
for(i=0;i<L.size;i++)
printf("%d ",L.list[i]);
printf("\n输入a的值:\na=");
scanf("%d",&a);
printf("\n输入b的值:\nb=");
scanf("%d",&b);
ListDelete_Sq(L,a,b); //删除大于等于a 小于等于b的数

printf("\n顺序表删除后: ");
for(i=0;i<L.size;i++)
printf("%d ",L.list[i]);
printf("\n"); //链表操作

InitList_Link(Link,10);
for(i=0;i<10;i++)
ListInsert_Link(Link,1,i);//在第1个位置插入i

printf("\n链表最大元素为:%d\n",SelectMax(Link));
printf("\n输入x:");
scanf("%d",&x);
printf("\n链表中元素等于x的值有%d个\n",CountEqualx(Link,x));
printf("\n链表删除前: ");
p=Link->next;//L为头结点
while(p)
{
printf("%d ",p->data);
p=p->next;
} printf("\n删除第几个元素:");
scanf("%d",&x); ListDelete_Link(Link,x,e);
printf("\n链表删除后: ");
p=Link->next;//L为头结点
while(p)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n链表删除的元素为: %d\n",e);
ListDestory_Sq(L);
ListDestory_Link(Link);
system("pause");
return 0;
}