當前位置:首頁 » 編程語言 » c語言動態數據列表
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言動態數據列表

發布時間: 2023-07-12 21:22:22

⑴ 使用c語言實現動態數組

你的太亂了的吧磨昌
二維數瞎顫扒組,其實實質是一位數組橫排
為啥用兩個for循環,我看了會頭暈,洞行你的太亂了
#include<stdio.h>
#include<malloc.h>
int main()
{
int *p;
int m,n;
scanf("%d%d",&m,&n);
p = (int*)malloc(sizeof(int)*m*n);
for(int i=0;i<(m*n);i++)
{
scanf("%d",p+i);
}
for( i=0;i<(m*n);i++)
{
print(「%d 」,p+i)
if((i+1)%4==0)
printf("\n");
}
希望對你有幫助

⑵ C語言如何定義動態數組

intmain(void)

{

int*number,n,m,i;

printf("thetotalnumbersis:");

scanf("%d",&n);

printf("backm:");

scanf("%d",&m);

number=(int*)malloc(n*sizeof(int));

printf("input%dintegers:",n);

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

{

scanf("%d",&number[i]);

}

(2)c語言動態數據列表擴展閱讀

動態數組,是相對於靜態數組而言。靜態數組的長度是預先定義好的,在整個程序中,一旦給定大小後就無法改變。而動態數組則不然,它可以隨程序需要而重新指定大小。

動態數組的內存空間是從堆(heap)上分配(即動態分配)的。是通過執行代碼而為其分配存儲空間。當程序執行到這些語句時,才為其分配。程序員自己負責釋放內存。使用動態數組的優點是可以根據用戶需要,有效利用存儲空間。

⑶ 數據結構順序表動態c語言

int Insert(Sqlist &L,int x,int i) {//其他函數沒有問題,下面是修改後的插入函數

int j;

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

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

L.elem[j] = L.elem[j - 1];

L.elem[i] = x;

++L.length;

return 1;

}

⑷ 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;

}

}

}