1.写一个类斐波那契数列 1 1 2 3 5 8 13 21 34 ...
#include <stdio.h>
#include <string.h>
void fbnq(int a)
{
int i;
int m=1,n=0;
int count;
for(i=0;i<a;i++)
{
count = m + n;
n = m;
m = count;
printf("%d\t",n);
}
putchar(10);
}
int main(int argc, const char *argv[])
{
/*
写一个类斐波那契数列 1 1 2 3 5 8 13 21 34 ...
*/
int a;
printf("请输入打印个数:");
scanf("%d",&a);
fbnq(a);
return 0;
}
2.二维整形数组的最大值;
#include <stdio.h>
#include <string.h>
int fun1(int arr[3][3]);
int main(int argc, const char *argv[])
{
int arr[3][3];
int max_p;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
printf("输入第%d行,第%d列的数:",i+1,j+1);
scanf("%d",&arr[i][j]);
}
}
max_p=fun1(arr);
printf("最大值为:%d\n",max_p);
return 0;
}
int fun1(int arr[3][3])
{
int (*parr)[3]=arr;
int max=**parr;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if(*(*(parr+i)+j) > max)
{
max=*(*(parr+i)+j);
}
}
}
return max;
}
3.函数族的封装。 char *strcat(char *dest, const char *src);
#include <stdio.h>
#include <string.h>
int strlen1(const char *s);
int strcmp1(const char *s1,const char *s2);
char *strcpy1(char *dest,char *src);
char *strcat1(char *dest,char *src);
int main(int argc, const char *argv[])
{
/*
函数族的封装。
char *strcat(char *dest, const char *src);
*/
char str[30] = "";
char str1[30] = "";
char str2[30] = "";
char s1[30] = "";
printf("请输入字符串:");
scanf("%s",str);
printf("请输入第二个字符串:");
scanf("%s",s1);
printf("%d\t%ld\n",strlen1(str),strlen(str));
printf("%d\t%d\n",strcmp1(str,s1),strcmp(str,s1));
strcpy(str2,str);
strcpy1(str1,str);
printf("%s\t%s\n",str1,str2);
strcat1(str1,s1);
strcat(str2,s1);
printf("%s\t%s\n",str1,str2);
return 0;
}
int strlen1(const char *s)
{
int count = 0;
while(*s++)
{
count++;
}
return count;
}
int strcmp1(const char *s1,const char *s2)
{
int sub = 0;
while(sub == 0)
{
sub = *s1 - *s2;
s1++;
s2++;
}
return sub;
}
char *strcpy1(char *dest,char *src)
{
while(*src != 0)
{
*dest = *src;
src++;
dest++;
}
*dest = *src;
return dest;
}
char *strcat1(char *dest,char *src)
{
while(*dest++ != 0);
dest--;
while(*src != 0)
{
*dest = *src;
src++;
dest++;
}
*dest = *src;
return dest;
}