c语言函数插入讲解 c语言如何引入函数

C语言函数实现插入

这个很简单啊。基本的思路就是先查找到插入或者删除的数字所在数组的位置,如果是插入,就把之后的依次想后挪动一个,然后插入;如果是删除,把之后的依次想前移动一个就行了,不过别忘了处理最后一个数字就行了。要是还有问题,我帮你写个算了。

创新互联专注于企业成都全网营销、网站重做改版、耒阳网站定制设计、自适应品牌网站建设、H5响应式网站商城网站建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为耒阳等各大城市提供网站开发制作服务。

如何在我的C语言程序中插入库函数

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("请输入一个整数");

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函数(它是个库函数).做完后就goto"end"--也就是函数的最后.)

if(d==6) {printf("%.2f",sqrt(a));goto end;};}(如果想做开平方,就直接做sqrt函数(它是个库函数).做完后就goto"end"--也就是函数的最后.)

printf("请再次输入一个整数"); (如果是做双目的就开始输入第二个数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;

}

(你试试看吧!应该可以!呵呵)

c语言链表插入一个新节点的函数问题

首先,主函数中,“请输入插入的数据”那里scanf应该是b,这是引发崩溃的原因。

其次,insert函数的目的应该是想插入数据后仍是有序链表。但你的insert函数逻辑太乱,有些不必要的判断,我修正了你的代码,贴给你看看。(虽然你insert是想保证有序,但你在创建的时候没有保证有序,所以最终结果不一定是有序。例如,创建 1,5,2,插入3,最后输出的是 1,3,5,2)

代码修改:

scanf("%d", b);

重写了insert函数,简化逻辑;

动态分配的内存记得释放,增加freeNode释放空间

#include stdio.h

#include stdlib.h

struct link

{

int data;

struct link *next;

};

struct link *add(struct link *head);//创建链表 

void display(struct link *head);//输出数据 

struct link *insert(struct link *head, int b); //插入新节点 

void freeNode(struct link *); //释放空间

int main()

{

char c;

struct link *head = NULL;

printf("要创建一个链表吗?");

scanf(" %c", c);

while (c == 'y' || c == 'Y')

{

head = add(head);

printf("要继续创建节点吗?");

scanf(" %c", c);

}

display(head);

int b;

printf("输入插入的数据");

scanf("%d", b);

head = insert(head, b);

display(head);

freeNode(head);

}

struct link *add(struct link *head)

{

int data;

struct link *p = (struct link*)malloc(sizeof(struct link));

if (head == NULL)

{

head = p;

}

else

{

struct link *pr = head;//一个临时指针pr先保存下head的地址 

while (pr-next != NULL)

{

pr = pr-next;

}

pr-next = p;

}

printf("输入数据");

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

p-next = NULL;

return head;

}

void display(struct link *head)

{

struct link *pr = head;

while (pr != NULL)

{

printf("%d\n", pr-data);

pr = pr-next;

}

}

struct link *insert(struct link *head, int b)

{

struct link *ptr = head, *prev = head;

struct link *newNode = (struct link *)malloc(sizeof(struct link));

newNode-data = b;

while (ptr  b  ptr-data) {

prev = ptr;

ptr = ptr-next;

}

newNode-next = ptr;

if (ptr == head) head = newNode;

else prev-next = newNode;

return head;

}

void freeNode(struct link *node) {

if (!node) return;

freeNode(node-next);

free(node);

}

C语言,insert函数

表示“插入”,它并不是C语言的一部分,用在函数名中可以表示插入元素。

例题:

#include iostream

#include vector

using namespace std;

int main()

{

vectorint intArray;

int i;

for(i=0;i10;i++)

{

intArray.push_back(i);

coutintArray[i]" ";

}

coutendl;

intArray.insert(intArray.begin()+1,intArray.begin()+3,intArray.begin()+5);

for(i=0;iintArray.size();i++)

coutintArray[i]" ";

system("pause");

return 0;

}


文章名称:c语言函数插入讲解 c语言如何引入函数
地址分享:http://hbruida.cn/article/ddoojhj.html