1.使用指针实现一维数组的传参,写一个冒泡排序的函数void sort_(int *p,int len)
#include <stdio.h>
#include <string.h>
#include "func.h"
int main(int argc, const char *argv[])
{
int len;
int arr[30];
printf("请输入数组的长度");
scanf("%d",&len);
for(int i=0;i<len;i++)
{
printf("输入第%d个元素:",i+1);
scanf("%d",&arr[i]);
}
sort_(arr,len);
return 0;
}
//函数部分
#include <stdio.h>
void sort_(int *p,int len)
{
int temp;
int i,j,k;
for(i=0;i<len-1;i++)//循环轮数
{
for(j=0;j<len-i-1;j++)//交换次数
{
if(*(p+j)>*(p+j+1))
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
for(k=0;k<len;k++)
{
printf("%d\t",*(p+k));
}
printf("\n");
}
2.使用二维数组传参实现杨辉三角void fun(int (*p)[100],int h)
#include <stdio.h>
#include <string.h>
#include "func.h"
int main(int argc, const char *argv[])
{
int arr[30][30]={0};
int len;
int (*p)[30]=arr;
printf("输入打印的行数:");
scanf("%d",&len);
fun(arr,len);
return 0;
}
//函数部分
void fun(int (*p)[30],int len)
{
int i,j;
for(i=0;i<len;i++)
{
*(*(p+i))=1;
for(j=0;j<=i;j++)
{
*(*(p+i+1)+j+1)=*(*(p+i)+j)+*(*(p+i)+j+1);
printf("%d\t",*(*(p+i)+j));
}
putchar(10);
}
}