當前位置:首頁 » 編程語言 » c語言列表

c語言列表

發布時間: 2022-01-21 13:53:39

『壹』 c語言如何定義一個單項列表

#include<iostream>
usingnamespacestd;
structA
{
intx;
A*next;
};
A*Head;//頭指針
intk=0;//記錄創建鏈表個數
A*J_L();//創建鏈表
voidB_J(A*head,intx);//比較大小
voidshow(A*head);//輸出
voidmain()
{
A*t;
t=J_L();
B_J(t,k);
show(t);
}
voidB_J(A*head,intx)
{
A*m,*n;
intswap;
for(inti=0;i<(x-1);i++)
{
n=head;
m=n->next;
for(intj=0;j<(x-i-1);j++)
{
if((n->x)>(m->x))
{swap=n->x;n->x=m->x;m->x=swap;}
n=n->next;
m=n->next;
}
}
}
voidshow(A*head)
{
A*t=head;
while(t!=NULL)
{
cout<<t->x<<endl;
t=t->next;
}
}
A*J_L()
{
cout<<"請輸入,0退出";
A*p=newA;
k++;
A*d=Head=p;
cin>>p->x;
if(p->x==0)
{
k--;
deletep;Head=0;p=0;
}
while(1)
{
cout<<"請輸入,0退出";
p=newA;
k++;
d->next=p;
cin>>p->x;
if(p->x==0)
{k--;deletep;d->next=0;p=0;break;}
d=p;
}
returnHead;
}

『貳』 C語言動態列表排序

鏈表嗎?以前練習的時候做過一個,你參考下

#include<stdio.h>

#include<stdlib.h>

#include<iostream.h>

#define OK 1;

#define ERROR 0;

typedef int ElemType;

typedef int Status;

typedef struct LNode{

ElemType data;

struct LNode *next;

}LNode,*LinkList;

void CreateList(LinkList &L,int n) //創建表

{

int i;

LNode *p;

L=(LinkList)malloc(sizeof(LNode));

L->next=NULL;

for(i=n;i>0;i--)

{

p=(LinkList)malloc(sizeof(LNode));

printf("輸入第%d個元素的值 ",i);

scanf("%d",&p->data);

p->next=L->next;

L->next=p;

}

printf("創建成功! ");

}

Status GetElem(LinkList &L,int i) //得到第i個元素

{

ElemType j=1,e;

LNode *p;

p=L->next;

while(j<i&&p)

{

p=p->next;

j++;

}

if(!p||j>i)

{

printf("第%d個元素不存在! ",i);

return ERROR;

}

e=p->data;

printf("第%d個元素是%d ",i,e);

return OK;

}

Status ListInsert(LinkList &L,int i,ElemType e) //插入元素

{

ElemType j;

LNode *p,*s;

p=L;

j=1;

while(p&&j<i)

{

p=p->next;

++j;

}

if(!p||j>i)

{

printf("不能在第%d中插入 ",i);

}

s=(LinkList)malloc(sizeof(LNode));

s->data=e;

s->next=p->next;

p->next=s;

return OK;

}

Status ListDelete(LinkList &L,int i) //刪除元素

{

LNode *p,*q;

p=L;

int j=0;

while(p->next&&j<i-1)

{

p=p->next;

j++;

}

if(!(p->next)||j>i-1)

{

printf("查找失敗! ");

return ERROR;

}

q=p->next;

p->next=q->next;

free(q);

printf("刪除成功! ");

return OK;

}

void MergeList(LinkList &La,LinkList &Lb,LinkList &Lc) //歸並

{

LNode *pa,*pb,*pc;

Lc=pc=La;

pa=La->next;

pb=Lb->next;

while(pa&&pb)

{

if(pa->data<=pb->data)

{

pc->next=pa;

pc=pa;

pa=pa->next;

}

else

{

pc->next=pb;

pc=pb;

pb=pb->next;

}

}

pc->next=pa?pa:pb;

printf("歸並成功! ");

}

void PList(LinkList &L) //列印

{

LNode *p;

p=L->next;

while(p)

{

printf("%d ",p->data);

p=p->next;

}

printf(" ");

}

Status CList(LinkList &L) //排序

{

LNode *p;

int flag,e;

p=L;

while(1)

{

flag=0;

for(p=L;p->next->next!=NULL;p=p->next)

{

if(p->next->data>p->next->next->data)

{

e=p->next->data;

p->next->data=p->next->next->data;

p->next->next->data=e;

flag=1;

}

}

if(flag==0)

{

printf("排序成功! ");

return OK;

}

}

}


int main()

{

int count=1,m,n,k,sum,i,j,g;

LinkList list[10];

printf("輸入創建表的個數 ");

scanf("%d",&m);

for(;count<=m;count++)

{

printf("輸入第%d個表的元素個數 ",count);

scanf("%d",&n);

printf("逆序輸入n個元素 ");

CreateList(list[count],n);

printf("第%d個表創建成功 ",count);

}

sum=m+1;

while(1)

{

printf("功能: 1.查找某位置元素的值 2.插入元素 3.刪除元素 4.元素排序 5.兩表合並 6.顯示表內元素 7.退出 ");

scanf("%d",&k);

switch(k)

{

case 1:

printf("輸入查找的表 ");

scanf("%d",&i);

if(i>m)

{

printf("不存在表%d ",i);

break;

}

printf("輸入查找位置 ");

scanf("%d",&j);

GetElem(list[i],j);

break;

case 2:

printf("輸入要插入的表 ");

scanf("%d",&i);

if(i>m)

{

printf("不存在表%d ",i);

break;

}

printf("輸入要插入的位置 ");

scanf("%d",&j);

printf("輸入要插入的值 ");

scanf("%d",&g);

ListInsert(list[i],j,g);

break;

case 3:

printf("輸入要刪除的表 ");

scanf("%d",&i);

if(i>m)

{

printf("不存在表%d ",i);

break;

}

printf("輸入要刪除的位置 ");

scanf("%d",&j);

ListDelete(list[i],j);

break;

case 4:

printf("輸入要排序的表 ");

scanf("%d",&i);

if(i>m)

{

printf("不存在表%d ",i);

break;

}

CList(list[i]);

break;

case 5:

printf("輸入表1 ");

scanf("%d",&i);

if(i>m)

{

printf("不存在表%d ",i);

break;

}

printf("輸入表2 ");

scanf("%d",&j);

if(i>m)

{

printf("不存在表%d ",j);

break;

}

MergeList(list[i],list[j],list[sum]);

printf("已經將合並的標放入第%d個表中",sum);

sum++;

m++;

break;

case 6:

printf("輸入要顯示的表 ");

scanf("%d",&i);

if(i>m)

{

printf("不存在表%d ",i);

break;

}

PList(list[i]);

break;

case 7:

return 0;

default:

printf("錯誤的指令!/n");

break;

}

}

}

『叄』 c語言表示列表的問題

/*
抱歉,又是我
*/

//#define debug

struct dimension
{
int num_row ;
int num_col ;
} ;

void table_set_entry (const int t[] ,const struct dimension *dim ,const int row ,const int col ,const int v)
{
if (t == 0 || dim == 0 || row < 0 || col < 0 || row >= dim->num_row || col >= dim->num_col)
return ;

t[col * dim->num_row + row] = v ;

return ;
}

int table_get_entry (const int t[] ,const struct dimension *dim ,const int row ,const int col)
{
if (t == 0 || dim == 0 || row < 0 || col < 0 || row >= dim->num_row || col >= dim->num_col)
return 0 ;

return t[col * dim->num_row + row] ;
}

void table_clear (const int t[] ,struct dimension *dim)
{
if (t == 0 || dim == 0)
return ;

const int* pb = t ;
const int* pe = t + dim->num_row * dim->num_col ;
int* p ;

for (p = pb ; p < pe ; p++)
*p = 0 ;

return ;
}

void table_ (const int a[] ,const int b[] ,struct dimension *dim)
{
if (a == 0 || b == 0 || dim == 0)
return ;

const int* pab = a ;
const int* pae = a + dim->num_row * dim->num_col ;
int* pa ;

const int* pbb = b ;
int* pb ;

for (pa = pab ,pb = pbb ; pa < pae ; pa++ ,pb++)
*pb = *pa ;

return ;
}

#ifdef debug

int main ()
{
void table_set_entry (const int t[] ,const struct dimension *dim ,const int row ,const int col ,const int v) ;
int table_get_entry (const int t[] ,const struct dimension *dim ,const int row ,const int col) ;
void table_clear (const int t[] ,struct dimension *dim) ;
void table_ (const int a[] ,const int b[] ,struct dimension *dim) ;

int t[10][10] ;
int f[100] ;
const struct dimension dim = {10 ,10} ;
const int row = 4 ;
const int col = 7 ;
const int v = 250 ;

table_set_entry (t ,&dim ,row ,col ,v) ;

printf ("isn't %d equal to %d ?\n" ,t[col][row] ,table_get_entry (t ,&dim ,row ,col)) ;

table_ (t ,f ,&dim) ;
table_clear (t ,&dim) ;

printf ("t : %d while f : %d\n" ,t[col][row] ,f[col * dim.num_row + row]) ;

return 0 ;
}

#endif

『肆』 c語言鏈表

嗨 又是個新注冊的號 太不可信了 這年頭新注冊的號 真是不靠譜
沒准辛辛苦苦做出來的題目 卻被不了了之了 缺乏誠信啊

『伍』 C語言printf下各種%號列表

%d 按整型數據的實際長度輸出
%md m是指輸出欄位的寬度。如果數據的位數小於m,則在左端補空格;若大於m,則按數據的實際位數輸出。
%ld 輸出長整型數據
%o 以八進制輸出整型數
%x 以十六進制輸出整型數
%u 以十進制輸出unsigned型數據
%c 輸出字元
%s 輸出字元串
%ms 輸出字元佔m列,如果串長度小於m則左邊補空格,若大於m則按原長度輸出
%-ms 如果串長度小於m,則字元串相左靠,右邊補空格
%m.ns 輸出佔m列,但只取字元串的左端n個字元。這n個字元在m的右側,左邊補空格
%-m.ns 其中m,n含義同上,n個字元輸出在m列的左側,右端補空格。如果n>m,則m自動取n值,即保證n個字元正常輸出
%f 不指定字元寬度,由系統自動指定,使整數部分全部輸出,並輸出6位小數。應當注意輸出的數字並非全部都是有效數字。單精度數的有效位數一般是7位,而雙精度數的有效位數一般是16位。
%m.nf 指定輸出的數列佔m列,其中有n位小數。若數值長度小於m,左端補空格。
%-m.nf與%m.nf 的區別僅在於使輸出的數值向左端靠,右端補空格。
%e 不指定輸出數據所佔的寬度和數字部分的小數位數
%m.ne和%-m.ne含義與前面相同
%g 假設一個數要用%f和%e輸出,用%g格式時自動從這兩種格式中選出最短者

『陸』 C語言函數列表

函數名: abort
功 能: 異常終止一個進程
用 法: void abort(void);
程序例:
#include <stdio.h>
#include <stdlib.h> int main(void)
{
printf("Calling abort()\n");
abort();
return 0; /* This is never reached */
}
函數名: abs
功 能: 求整數的絕對值
用 法: int abs(int i);
程序例:
#include <stdio.h>
#include <math.h> int main(void)
{
int number = -1234; printf("number: %d absolute value: %d\n", number, abs(number));
return 0;
}
函數名: absread, abswirte
功 能: 絕對磁碟扇區讀、寫數據
用 法: int absread(int drive, int nsects, int sectno, void *buffer);
int abswrite(int drive, int nsects, in tsectno, void *buffer);
程序例:
/* absread example */ #include <stdio.h>
#include <conio.h>
#include <process.h>
#include <dos.h> int main(void)
{
int i, strt, ch_out, sector;
char buf[512]; printf("Insert a diskette into drive A and press any key\n");
getch();
sector = 0;
if (absread(0, 1, sector, &buf) != 0)
{
perror("Disk problem");
exit(1);
}
printf("Read OK\n");
strt = 3;
for (i=0; i<80; i++)
{
ch_out = buf[strt+i];
putchar(ch_out);
}
printf("\n");
return(0);
}
函數名: access
功 能: 確定文件的訪問許可權
用 法: int access(const char *filename, int amode);
程序例:
#include <stdio.h>
#include <io.h> int file_exists(char *filename); int main(void)
{
printf("Does NOTEXIST.FIL exist: %s\n",
file_exists("NOTEXISTS.FIL") ? "YES" : "NO");
return 0;
} int file_exists(char *filename)
{
return (access(filename, 0) == 0);
}
函數名: acos
功 能: 反餘弦函數
用 法: double acos(double x);
程序例:
#include <stdio.h>
#include <math.h> int main(void)
{
double result;
double x = 0.5; result = acos(x);
printf("The arc cosine of %lf is %lf\n", x, result);
return 0;
}
函數名: allocmem
功 能: 分配DOS存儲
用 法: int allocmem(unsigned size, unsigned *seg);
程序例:
#include <dos.h>
#include <alloc.h>
#include <stdio.h> int main(void)
{
unsigned int size, segp;
int stat; size = 64; /* (64 x 16) = 1024 bytes */
stat = allocmem(size, &segp);
if (stat == -1)
printf("Allocated memory at segment: %x\n", segp);
else
printf("Failed: maximum number of paragraphs available is %u\n",
stat); return 0;
}
函數名: arc
功 能: 畫一弧線
用 法: void far arc(int x, int y, int stangle, int endangle, int radius);
程序例:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h> int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int midx, midy;
int stangle = 45, endangle = 135;
int radius = 100; /* initialize graphics and local variables */
initgraph(&gdriver, &gmode, ""); /* read result of initialization */
errorcode = graphresult(); /* an error occurred */
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch(); exit(1); /* terminate with an error code */
} midx = getmaxx() / 2;
midy = getmaxy() / 2;
setcolor(getmaxcolor()); /* draw arc */
arc(midx, midy, stangle, endangle, radius); /* clean up */
getch();
closegraph();
return 0;
}
函數名: asctime
功 能: 轉換日期和時間為ASCII碼
用 法: char *asctime(const struct tm *tblock);
程序例:
#include <stdio.h>
#include <string.h>
#include <time.h> int main(void)
{
struct tm t;
char str[80]; /* sample loading of tm structure */ t.tm_sec = 1; /* Seconds */
t.tm_min = 30; /* Minutes */
t.tm_hour = 9; /* Hour */
t.tm_mday = 22; /* Day of the Month */
t.tm_mon = 11; /* Month */
t.tm_year = 56; /* Year - does not include century */
t.tm_wday = 4; /* Day of the week */
t.tm_yday = 0; /* Does not show in asctime */
t.tm_isdst = 0; /* Is Daylight SavTime; does not show in asctime */ /* converts structure to null terminated
string */ strcpy(str, asctime(&t));
printf("%s\n", str); return 0;
}
函數名: asin
功 能: 反正弦函數
用 法: double asin(double x);
程序例:
#include <stdio.h>
#include <math.h> int main(void)
{
double result;
double x = 0.5; result = asin(x);
printf("The arc sin of %lf is %lf\n", x, result);
return(0);
}
函數名: assert
功 能: 測試一個條件並可能使程序終止
用 法: void assert(int test);
程序例:
#include <assert.h>
#include <stdio.h>
#include <stdlib.h> struct ITEM {
int key;
int value;
}; /* add item to list, make sure list is not null */
void additem(struct ITEM *itemptr) {
assert(itemptr != NULL);
/* add item to list */
} int main(void)
{
additem(NULL);
return 0;
}
函數名: atan
功 能: 反正切函數
用 法: double atan(double x);
程序例:
#include <stdio.h>
#include <math.h> int main(void)
{
double result;
double x = 0.5; result = atan(x);
printf("The arc tangent of %lf is %lf\n", x, result);
return(0);
}
函數名: atan2
功 能: 計算Y/X的反正切值
用 法: double atan2(double y, double x);
程序例:
#include <stdio.h>
#include <math.h> int main(void)
{
double result;
double x = 90.0, y = 45.0; result = atan2(y, x);
printf("The arc tangent ratio of %lf is %lf\n", (y / x), result);
return 0;
}
函數名: atexit
功 能: 注冊終止函數
用 法: int atexit(atexit_t func);
程序例:
#include <stdio.h>
#include <stdlib.h> void exit_fn1(void)
{
printf("Exit function #1 called\n");
} void exit_fn2(void)
{
printf("Exit function #2 called\n");
} int main(void)
{
/* post exit function #1 */
atexit(exit_fn1);
/* post exit function #2 */
atexit(exit_fn2);
return 0;
}
函數名: atof
功 能: 把字元串轉換成浮點數
用 法: double atof(const char *nptr);
程序例:
#include <stdlib.h>
#include <stdio.h> int main(void)
{
float f;
char *str = "12345.67"; f = atof(str);
printf("string = %s float = %f\n", str, f);
return 0;
}
函數名: atoi
功 能: 把字元串轉換成長整型數
用 法: int atoi(const char *nptr);
程序例:
#include <stdlib.h>
#include <stdio.h> int main(void)
{
int n;
char *str = "12345.67"; n = atoi(str);
printf("string = %s integer = %d\n", str, n);
return 0;
}
函數名: atol
功 能: 把字元串轉換成長整型數
用 法: long atol(const char *nptr);
程序例: #include <stdlib.h>
#include <stdio.h> int main(void)
{
long l;
char *str = "98765432"; l = atol(lstr);
printf("string = %s integer = %ld\n", str, l);
return(0);
}

『柒』 C語言如何建立一個列表,編程怎麼編,舉例說一下,謝謝啦

首先定義一個鏈表。

struct node
{
int id;
struct node * next;

};

接下來寫一些操作的函數(插入,刪除等等)。

插入函數:

struct node* insert(struct node* pNode, int iTemp)
{
//判斷 pNode 是否為空。
if(pNode==NULL)
{
//這個節點是空,返回錯誤。
return NULL;

}
// 創建一個新的節點。

struct node* tempNode = (struct node*)malloc(sizeof(struct node));
tempNode->id= iTemp;
if(pNode->next == NULL)
{

pNode->next = tempNode;
tempNode->next = NULL;

}else
{
struct node * pNext = pNode->next;
pNode->next = tempNode;
tempNode->next = pNext;

}

return tempNode;

}

int main()
{
struct node* head = (struct node*)malloc(sizeof(struct node));
head->id = 0;
head->next = NULL;
struct node * ptemp;
ptemp = head;

for( int i=1; i<10; i++)
{
struct node* temp = insert(ptemp,i);
ptemp = temp;

}

return 0;

}

『捌』 C語言鏈表···

struct date{…}/鏈表結構體
p1/定義鏈表結構體的一個指針名插入點/
p1=(struct date *)malloc(sizeof(struct date))/分配鏈表內存
free(newnode)/釋放節點內存
刪除全部節點定義兩個鏈表指針名p1,p2循環刪除
while(p1->next!=NULL)
{p2=p1;
p1->…/p1指向下鏈表一節點
free(p2);
}

『玖』 C語言鏈表

#include<stdio.h>
#include<stdlib.h>
#defineN8
typedefstructlist
{intdata;
structlist*next;
}SLIST;
SLIST*insertlist(SLIST*p,int*pvalue)
{
SLIST*tmp=p,*tmp_p;
intt=*pvalue;
while(tmp->next!=NULL&&tmp->next->data<t)
tmp=tmp->next;

tmp_p=(SLIST*)malloc(sizeof(SLIST));
tmp_p->next=tmp->next;
tmp_p->data=t;
tmp->next=tmp_p;
returnp;
}

SLIST*creatlist(int*a)
{
SLIST*h,*p,*q;inti;
h=p=(SLIST*)malloc(sizeof(SLIST));
for(i=0;i<N;i++)
{q=(SLIST*)malloc(sizeof(SLIST));
q->data=a[i];
q->next=NULL;
p->next=q;
p=q;
}
p->next=0;
returnh;
}
voidoutlist(SLIST*h)
{
/*這里輸出鏈表中各個數據*/
SLIST*tmp=h->next;
while(tmp!=NULL){
printf("%d",tmp->data);
tmp=tmp->next;
}
}
intmain(void)
{
SLIST*head;
inta[N];
intnvalue,i;
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&nvalue);//插入的結點數據
head=creatlist(a);
head=insertlist(head,&nvalue);
outlist(head);
return0;
}

『拾』 C語言 鏈表

/*

卡號 姓名

44098 譚侃

99089 馬吹

23011 趙忽悠

q

44098 譚侃

99089 馬吹

23011 趙忽悠

Press any key to continue

*/

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

typedefstructcard{
intcardnum;//卡號
charstudentname[30];//學生姓名
structcard*next;//指針域
}SCard;

SCard*Create(){
SCard*head,*p;
intid;
charname[30];
head=p=(SCard*)malloc(sizeof(SCard));
printf("卡號姓名 ");
while(scanf("%d%s",&id,name)==2){
p->next=(SCard*)malloc(sizeof(SCard));
p->next->cardnum=id;
strcpy(p->next->studentname,name);
p=p->next;
}
p->next=NULL;
returnhead;
}

voidShow(SCard*head){
SCard*p=head->next;
while(p){
printf("%d %s ",p->cardnum,p->studentname);
p=p->next;
}
}

intmain(){
SCard*head=Create();
if(head->next==NULL)printf("faileure ");
elseShow(head);
return0;
}
熱點內容
extjs文件上傳java 發布:2024-11-13 06:22:49 瀏覽:692
電腦數據怎麼備份到伺服器 發布:2024-11-13 06:19:31 瀏覽:404
c語言函頭文件 發布:2024-11-13 06:14:40 瀏覽:37
編譯java程序的命令是什麼 發布:2024-11-13 06:09:32 瀏覽:857
編譯dll依賴另一個dll 發布:2024-11-13 06:09:25 瀏覽:124
祝編程老師 發布:2024-11-13 06:07:26 瀏覽:506
五格殿下編程 發布:2024-11-13 05:54:11 瀏覽:214
學生密碼筆盒原始密碼多少 發布:2024-11-13 05:30:06 瀏覽:770
android廣播的注冊 發布:2024-11-13 04:47:49 瀏覽:26
KTV上傳視頻 發布:2024-11-13 04:46:59 瀏覽:34