1、利用函数封装和指针输出前n项斐波那契数列
#include <stdio.h>
#include <string.h>
void feibo(void)
{
int n = 0;
printf("请输入斐波那契数列的项数:");
scanf("%d",&n);
int arr[100] = {0};
int *p = arr;
int i = 0;
arr[0] = 1,arr[1] = 1;
for(int i = 2;i<n;i++)
{
*(p+i) = *(p+i-1) + *(p+i-2);
}
for(int i = 0;i<n;i++)
{
printf("%-3d",p[i]);
}
putchar(10);
}
int main(int argc,const char * argv[])
{
feibo();
return 0;
}
2、利用函数封装求二维数组最值
#include <stdio.h>
#include <string.h>
void max(void)
{
int arr[3][3] = {0};
int (*p)[3] = arr;
printf("请输入>>>>");
for(int i = 0;i<3;i++)
{
for(int j = 0;j<3;j++)
{
scanf("%d",&arr[i][j]);
if(*(*(p+0)+0) < *(*(p+i)+j) )
{
*(*(p+0)+0) = *(*(p+i)+j) ;
}
}
}
printf("最大值为:%d\n", *(*(p+0)+0));
}
int main(int argc,const char * argv[])
{
max();
return 0;
}
3、用函数封装string函数族
#include<stdio.h>
#include <string.h>
int my_strlen(const char *s)
{
int count = 0;
while(*s != '\0')
{
count++;
s++;
}
return count;
}
int main(int argc,const char * argv[])
{
char str[20] = {0};
printf("请输入字符串:");
gets(str);
printf("%d\n",my_strlen(str));
return 0;
}
#include<stdio.h>
#include<string.h>
void my_strcpy(char* dest, char* src)//dest表示目的地,src表示源头
{
while (*src != '\0')
{
*dest = *src;
dest++;
src++;
}
*dest = *src;
}
int main(int argc,const char * argv[])
{
char arr1[20] = "";
char arr2[20] = "";
printf("请输入字符串:");
gets(arr2);
my_strcpy(arr1, arr2);//arr1目标空间起始地址,arr2源空间起始地址
printf("结果是:%s\n", arr1);
return 0;
}