--
---
C语言程序设计实验报告
实验名称
指针
学
院
机械工程与自动化
专业班级
机械 1003
姓
名
学
号
任课教师
实验时间
实验目的
1)掌握指针的概念,会定义和使用指针变量;
2)能正确使用变量的指针和指向变量的指针变量;
3)能正确使用数组的指针和指向数组的指针变量;
4)能正确使用字符串的指针和指向字符串的指针变量;
实验内容
将一个任意整数插入到已排序的整形数组中,插入后,数组中的数仍然保持有序;要求:
1)整形数组直接由赋值的方式初始化,要插入的整数有scanf() 函数数入;
2)算法实现过程采用指针进行处理;
3)输入原始数据以及插入整数后的数据,并加以说明;
算法描述流程图
开始
定义变量
a[100],m,i,*p,n,w;
输入数组a[n],n
p=a;
*p
w=*p
i=i+1
i=n-1;
a[i]>w;
a[i+1]=a[i];i=i-1;a[i-1]=m
;
输出数组a[];
结束
源程序
#include
main()
{
int a[100],m,i,*p,n,w;
printf(" 请输入要输入的数组的元素个数:\n");
scanf("%d",&n);
printf(" 请输入已排好序的数组:\n");
for(i=0;i
{
scanf("%d",&a[i]);
}
printf(" 请输入要插入的数:\n");
scanf("%d",&m);
p=a;
while(*p
p++;
w=*p;
for(i=n-1;a[i]>=w;i--)
{
a[i+1]=a[i];
}
a[i+1]=m;
for(i=0;i<=n;i++)
{
printf("%-4d",a[i]);
}
printf("\n");
}
测试数据
“ 1,3,5,7,9,11,13,15,17,19······10”
运行结果
出现问题及解决方法
在编写过程中,
for(i=n-1;a[i]>=w;i--)
{
a[i+1]=a[i];
}
a[i+1] =m;
这一步没有注意
a[i++]=m
和 a[i+1]=m
中 i++ 和 i+1 不同,
a[i++]=m
是先将的值赋给
a[i] ,然后在执
行自增;而在实验过程中忽略了这一点,造成了不必要的麻烦;
实验心得
通过这次指针实验掌握了指针的概念, 会定义和使用指针变量, 并且能利用指针来简单化一些问题,给以后的编程带来了很大的便利;