1.将自己编写好的strlen strcpy strcmp strcat 打包成函数。
a.mystrlen ,mystrcpy mystrcmp mystrcat.
b.mystrcpy mystrcmp mystrcat不需要返回值,因为指针没讲,无法返回数组
#include <stdio.h>
//strcat///
void mystrcat(char arr[],char ch[]){
printf("请输入第一个字符串>>>>");
int i,j,a,c=0;
gets(arr);
printf("请输入第二个字符串>>>");
gets(ch);
for(i=0;arr[i]!='\0';i++){
}
for(j=0;ch[j]!='\0';j++){
}
for(a=i;a<i+j;a++){
arr[a]=ch[c++];
}
printf("arr[]===%s\n",arr);
}
///strcmp//
void mystrcmp(char arr[],char ch[]){
printf("请输入第一个字符串...");
int i,j=0;
int res;
gets(arr);
printf("请输入第二个字符串...");
gets(ch);
for(i=0;i<20;i++){
if(arr[i]==ch[i]){
continue;
}
else if(arr[i]<ch[i]){
printf("res=%d\n",arr[i]-ch[i]);
break;
}
else if(arr[i]>ch[i]){
printf("res=%d\n",arr[i]-ch[i]);
break;
}
}
while(arr[j]==ch[j]){
if(arr[j]=='\0'){
printf("res=%d\n",arr[j]-ch[j]);
break;
}
j++;
}
}
strcpy
void mystrcpy(char arr[],char ch[]){
printf("请输入一个字符串>>>");
int i;
gets(arr);
for(i=0;arr[i]!='\0';i++)
{
ch[i]=arr[i];
}
ch[i]='\0';
printf("ch[20]==%s\n",ch);
}
/strlen//
int mystrlen(char arr[]){
int i;
for( i=0;arr[i]!='\0';i++){
}
printf("该字符串的长度为%d\n",i);
return i;
}
int main(int argc, const char *argv[])
{
char arr[20]={1,2,3,4,5};
mystrlen(arr);
//mystrcpy///
char cpy[20]={0},ch[20]={0};
mystrcpy(cpy,ch);
//mystrcat///
char cat[20]={0},cat1[20]={0};
mystrcat(cat,cat1);
mystrcmp/
char cmp[20]={0},cmp1[20]={0};
mystrcmp(cmp,cmp1);
return 0;
}
2.求斐波那契数列的第n项。
#include <stdio.h>
int shulie(int n){
if(n==1||n==2){
return 1;
}
return shulie(n-1)+shulie(n-2);
}
int main(int argc, const char *argv[])
{
printf("请输入多少列......");
int n;
scanf("%d",&n);
printf("第%d项为:%d\n",n,shulie(n));
return 0;
}
结果:
3.输出一个十行的杨辉三角。
#include <stdio.h>
int main(int argc, const char *argv[])
{
int arr[10][10]={0};
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
if(i==j||j==0){
arr[i][j]=1;
}
}
}
for(int i=1;i<10;i++){
for(int j=1;j<=i;j++){
arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
}
}
for(int i=0;i<10;i++){ //输出
for(int j=0;j<10;j++){
if(arr[i][j]!=0){
printf("%d ",arr[i][j]);
}
}
putchar(10);
}
return 0;
}
运行结果: