前一半元素与后一半元素交换
#include<stdio.h>// 定义头文件,预处理命令 int main()//定义主函数 {void cha(int *x,int n);//函数声明 int i;//定义整型变量i int a[6];//定义整型数组 int*p;//定义指向整型变量的指针变量p p=a;//将整型数组首地址赋值给指针变量p,指针变量p指向数组 printf("输入6个数组元素:\n");//打印“输入6个数组元素 :”字样 for(i=0;i<6;i++,p++)//用for循环使p从p变到p+5 , 用i值的限制p值的循环次数 scanf("%d,",p);//输入数组元素的六个值 p=a;//将p的值再次赋值为a ,因为p的值刚才变成p+5 cha(p,6);//调用cha函数 for(i=0;i<6;i++,p++)//用 for循环输出经函数变换后的数组元素 ,用指针实现数组的遍历 printf("%d,",*p);//打印数组元素 return 0;//返回值类型为整型 } void cha(int *x,int n)//定义cha函数 {int i,j,mid;//定义局部变量i,j,mid for(i=0;i<(n/2);i++)//用for循环将i的值从i=0变到i=(n/2)-1 { j=i+(n/2);//j赋值为i+(n/2) mid=*(x+i);//将x+i所指向的元素的值赋值给变量mid *(x+i)=*(x+j);//x+j所指向的元素赋值给x+i所指向的元素 *(x+j)=mid;//最后将变量mid的值给x+j所指向的元素 } }
小结
一、我编的程序运行内容是先输入6个数组元素,然后将6个数组元素的前一半元素和后一半元素位置调换。
二、错误(1)编程时定义函数后,在引用函数时前面加上了函数的类型,因为看不懂错误提示导致很长时间没找出错误,不过我不能理解为啥不能加函数类型。看上去好像没啥错误
错误(2)我一开始将11行写的p=a;放到12行下面,因为在调用函数时用到p的值,而P值已经不是初始值,导致程序能运行,但答案不对。
三、(1)通过这次编程我懂得了要养成良好的编程习惯,避免一些小错误。
(2)要深刻理解语句的意义,不能模糊猜测,有时候能读懂语句,但自己敲不出代码。