您的位置:首页 > 编程语言 > C语言/C++

C语言

2016-05-26 13:09 344 查看
无聊时写的一个小练习,仅仅作为个人的记录使用:

在一个原有的数组中,在原数组中,在规定的点,插入规定的数字:

#include<stdio.h>

#include<stdlib.h>

#include<malloc.h>

void main()

{
int  charu(int addr,int n,int *p,int * number);
int  exchange(int a,int b);
int number;//用来存放你要插入的数字
int addr;//用来存放要插入数字在哪个节点
int i;
int *p=NULL;
int n;
printf("输入你一开始需要的数字个数\n");

scanf("%d",&n);
p=(int *)malloc(sizeof(int)*(n+1));//开辟一个n+1的内存空间

if(p==NULL)
{
printf("无法申请到内存空间");
}
else
{
printf("成功申请到内存空间\n");
printf("初始化你需要的n个数字\n");
//输入你需要的数字
  for(i=0;i<n;i++)
scanf("%d",p+i);
printf("初始化完成,你输入的字符串为:\n");
// 输出结构
for(i=0;i<n;i++)

printf("%d\t",*(p+i));
printf("\n");
printf("输入你要插入到第几个数后面:\n");
scanf("%d",&addr);
printf("输入你要插入的数字\n");
scanf("%d",&number);
charu(addr,n,p,&number);//调用插入的函数

//输出最后的字符串
printf("最终的结果为:\n");
for(i=0;i<n+1;i++)
printf("%5d\t",*(p+i));
printf("\n");

}

}

//算法:一次将number中的值与P指向的值进行交换

int  charu(int addr,int n,int *p,int *number)

{
int  exchange(int *a,int* b);
for(;addr<n+1;addr++)
{
exchange(number,(p+addr));//将number中的值与指针指向的值进行交换

}

return 0;

}

//三种交换的方法

int  exchange(int *a,int* b)

{

//int c;

//c=a;

//a=b;

//b=c;

*a=(*a)+(*b);

*b=(*a)-(*b);

*a=(*a)-(*b);

//a=a^b;

//b=a^b;

//a=a^b;

return 0;

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: