這個很簡單啊?;镜乃悸肪褪窍炔檎业讲迦牖蛘邉h除的數(shù)字所在數(shù)組的位置,如果是插入,就把之后的依次想后挪動一個,然后插入;如果是刪除,把之后的依次想前移動一個就行了,不過別忘了處理最后一個數(shù)字就行了。要是還有問題,我?guī)湍銓憘€算了。
成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務陽原,十載網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:028-86922220
你只需要建立一個數(shù)組,將數(shù)組建立的大一點,然后分兩次輸入數(shù),構(gòu)建一個數(shù)組,在整體排序輸出就行了
一般呢,插入和刪除函數(shù)是分開寫的,還有分成兩種存儲結(jié)構(gòu),1.順序表,2.鏈表,我給你一個我上數(shù)據(jù)結(jié)構(gòu)時候?qū)懙逆湵淼牟僮?,里面全都有,如果不會用,追問?/p>
#includestdio.h
#includemalloc.h
#includeWindows.h
#includeconio.h
#includestdlib.h
typedef struct
{
int data;
struct LNode *next;
}LNode;
LNode *Listinit(LNode *L)//初始化鏈表返還頭指針
{
L = (LNode *)malloc(sizeof(LNode));
if (!L)return 0;
L-next = NULL;
return L;
}
int GetElem_L(LNode *L, int i, int *e)//取第i個元素
{
int j;
LNode *p;
p=L-next;j=1;
while(pji)
{
p=p-next;++j;
}
if(!p||ji) return 0;//i超過表長
*e=p-data;
return 1;
}
int ListInsert_L(LNode *L, int i, int e)//插入數(shù)據(jù)元素
{
LNode *p1 = L,*p2=L;
int j = 0;
if (i-1 LinkLength(L))
return 2;
while(p1!=NULL ji-1)
{
p1 = p1-next;
j++;
}
p2 = (LNode *)malloc(sizeof(LNode));
if (!p2)
return 0;
p2-data = e;
p2-next = p1-next;
p1-next = p2;
return 1;
}
void ClearList(LNode *L)//重置為空表
{
LNode *p;
while(L-next)
{
p=L-next;
L-next=p-next;
free(p);
}
}
void print_link(LNode *L)//輸出函數(shù)
{
LNode *p = L;
p = p-next;
while (p != NULL)
{
printf("%5d", p-data);
p = p-next;
}
}
int ListDlete_L(LNode *L, int i, int *e)//刪除L中I,并用e返回
{
int j = 0;
LNode *p1 = NULL, *p2 = NULL;
p1 = L;
while (p1-next != NULL j i - 1)
{
p1 = p1-next;
j++;
}
if (p1-next == NULL || j i - 1)
return 0;
p2 = p1-next;
p1-next = p2-next;
free(p2);
return 1;
}
int LinkLength(LNode *L)//鏈表的長度
{
int i = 0;
LNode *p = L-next;
while (p != NULL)
{
i++;
p = p-next;
}
return i;
}
int
add(int
x,int
y);
int
sub(int
x,int
y);
int
mul(int
x,int
y);
int
div(int
x,int
y);
#include
math.h
#include
stdio.h
void
main()
{
int
a,b,c,d,e,f,g,h,i;
printf("XXXXXXXXXXXXXXX計算器");
printf("\n");
for(c=1;c=30;c++)
printf("*");
printf("\n");
printf("請輸入一個整數(shù)");
printf("\n");
scanf("%d",a);
printf("\n");
for(c=1;c=30;c++)
printf("-");
printf("\n");
printf("請選擇您要做的運算:1.+,2.-,3.*,4./5.abs,6.sqrt");
printf("\n");
for(c=1;c=30;c++)
printf("*");
printf("\n");
scanf("%d",d);
printf("\n");
if(d==5)
{printf("%d",abs(a));goto
end;}(如果想做絕對值,就直接做abs函數(shù)(它是個庫函數(shù)).做完后就goto"end"--也就是函數(shù)的最后.)
if(d==6)
{printf("%.2f",sqrt(a));goto
end;};}(如果想做開平方,就直接做sqrt函數(shù)(它是個庫函數(shù)).做完后就goto"end"--也就是函數(shù)的最后.)
printf("請再次輸入一個整數(shù)");
(如果是做雙目的就開始輸入第二個數(shù)b)
printf("\n");
scanf("%d",b);
printf("\n");
switch(d)
{
case
1:add(a,b);break;
case
2:sub(a,b);break;
case
3:mul(a,b);break;
case
4:div(a,b);break;
default:printf("date
input
error!\n");
}
end:
printf("\n");}
int
add(int
x,int
y)
{
int
m;
m=x+y;
printf("%d",m);
return
m;
}
int
sub(int
x,int
y)
{
int
m;
m=x-y;
printf("%d",m);
return
m;
}
int
mul(int
x,int
y)
{
int
m;
m=x*y;
printf("%d",m);
return
m;
}
int
div(int
x,int
y)
{
int
m;
m=x/y;
printf("%d",m);
return
m;
}
(你試試看吧!應該可以!呵呵)