1./*6.11函数封装数组初始化遍历*/
#include <stdio.h>
void inirprintf(int *parr,int len) //利用指针承接元素首地址
{
int i;
for(i=0;i<len;i++)
{
printf("请输入%d个元素的值:\n",i+1);
scanf("%d",parr++); //scanf是内容保存到地址中所以用parr访问地址
}
}
void print(int *parr,int len)
{
int i;
for(i=0;i<len;i++)
{
printf("%d ",*parr++); //打印输出是取值所以用*取值符合从地址中取
}
}
int main()
{
int arr[5];//定义5个元素
int len = sizeof(arr)/sizeof(arr[0]);//计算5个元素的长度
inirprintf(arr,len);//初始化空数组函数 arr表示元素首地址 len长度
print(&arr[0],len);//打印函数 &arr[0]也表示元素首地址 len长度
return 0;
}
2./*6.12将数组逆序输出*/
#include <stdio.h>
void inirprintf(int *parr,int len) //利用指针承接元素首地址
{
int i;
for(i=0;i<len;i++)
{
printf("请输入%d个元素的值:\n",i+1);
scanf("%d",parr++); //scanf是内容保存到地址中所以用parr访问地址
}
}
void print(int *parr,int len)
{
int i;
for(i=0;i<len;i++)
{
printf("%d ",*parr++); //打印输出是取值所以用*取值符合从地址中取
}
}
/*思路 11 22 33 44 55
i 0 1 2 3 4
j 4 3
得i循环次数len/2只需要交换2次
i+j = len-1;
j = len-1-;
*/
void printnixu(int *parr,int len)
{
int i,j;
int tmp;
for(i=0;i<len/2;i++)
{
j = len - 1 - i;
tmp = *(parr+i);
*(parr+i) = *(parr+j);
*(parr+j) = tmp;
}
putchar('\n');
}
int main()
{
int arr[5];//定义5个元素
int len = sizeof(arr)/sizeof(arr[0]);//计算5个元素的长度
inirprintf(arr,len);//初始化空数组函数 arr表示元素首地址 len长度
print(&arr[0],len);//打印函数 &arr[0]也表示元素首地址 len长度
printnixu(arr,len);
print(&arr[0],len);
return 0;
}