C语言指针实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计实验报告
1实验目的
(1)掌握指针的概念,会定义和使用指针变量;
(2)能正确使用变量的指针和指向变量的指针变量;
(3)能正确使用数组的指针和指向数组的指针变量;
(4)能正确使用字符串的指针和指向字符串的指针变量;
2实验内容
将一个任意整数插入到已排序的整形数组中,插入后,数组中的数仍然保持有序;要求:
(1)整形数组直接由赋值的方式初始化,要插入的整数有scanf()函数数入;(2)算法实现过程采用指针进行处理;
(3)输入原始数据以及插入整数后的数据,并加以说明;
3算法描述流程图
4源程序
#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"); } 5测试数据 “1,3,5,7,9,11,13,15,17,19······10” 6运行结果 7出现问题及解决方法 在编写过程中, 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],然后在执行自增;而在实验过程中忽略了这一点,造成了不必要的麻烦; 8实验心得 通过这次指针实验掌握了指针的概念,会定义和使用指针变量,并且能利用指针来简单化一些问题,给以后的编程带来了很大的便利;