使用指针实现一维数组的传参,写一个冒泡排序的函数void sort_(int *p,int len)
#include<stdio.h>
void sort_(int *p,int len)
{
for(int i=0;i<len;i++)
{
for(int j=0;j<len-i-1;j++)
{
if(*(p+j)>*(p+j+1))
{
int temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
}
int main(int argc, char const *argv[])
{
int lena=0;
printf("请输入要输入的数组项数:");
scanf("%d",&lena);
int arr[lena];
for(int i=0;i<lena;i++)
{
printf("请输入第%d项数据:",i+1);
scanf("%d",arr+i);
}
sort_(arr,lena);
printf("排序后的数组为:");
for(int i=0;i<lena;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
return 0;
}
使用二维数组传参实现杨辉三角void fun(int (*p)[100],int h,int l)
#include<stdio.h>
void fun(int (*p)[100],int h,int l)
{
for (int i=0;i<100;i++)
{
**(p+i)=1;
}
for (int i=0;i<h;i++)
{
for (int j=1;j<=i;j++)
{
*(*(p+i)+j)=*(*(p+i-1)+j-1)+*(*(p+i-1)+j);
}
}
}
int main(int argc, char const *argv[])
{
int arr[100][100];
int line=0;
int lie=0;
printf("请输入生成杨辉三角的行数:\n");
scanf("%d",&line);
fun(arr,line,lie);
for(int i=0;i<line;i++)
{
for(int j=0;j<=i;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
//printf("\n");
return 0;
}