1>编程实现二维数组的杨辉三角
2>编程实现二维数组计算每一行的和以及列和
3>编程实现二维数计算第二大值
代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>void yanghui(int n){int arr[n][n];for (int i = 0; i < n; i++){for (int j = 0; j <=i; j++){if(i-1<0|j-1<0|j==i)arr[i][j]=1;elsearr[i][j]=arr[i-1][j-1]+arr[i-1][j];printf("%d\t",arr[i][j]);}puts("");}}
void Sum(int (*a)[3]){int sum;for (int i = 0; i < 3 ; i++){ sum=0;for (int j = 0; j < 3; j++){sum+=*(*(a+i)+j);}printf("第%d行的和为:%d\n",i,sum);}for (int i = 0; i < 3 ; i++){ sum=0;for (int j = 0; j < 3; j++){sum+=*(*(a+j)+i);}printf("第%d列的和为:%d\n",i,sum);}
}
void secondmax(int arr[][3]){int max1=0;int max2=0;if(max1<max2){int temp=max1;max1=max2;max2=temp;}for (int i = 0; i < 3; i++){for (int j = 0; j < 3; j++){if(arr[i][j]>max1){max2=max1;max1=arr[i][j];}}}printf("第二大值为:%d\n",max2);}
int main(int argc, char const *argv[])
{int arr[][3]={{1,2,3},{4,5,6},{7,8,9}};yanghui(6);Sum(arr);secondmax(arr);return 0;
}
程序:
4>使用非函数方法实现系统函数strcat,strcmp,strcpy,strlen
代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>char *my_strcat(char *str1,const char * str2){int i=0;int j=0;while(*(str1+i))i++;while(*(str2+j)){*(str1+i)=*(str2+j);i++;j++;}*(str1+i)='\0';return str1;
}
int my_strcmp(char *str1,const char *str2){int i=0;while(*(str1+i)==*(str2+i))i++;return *(str1+i)-*(str2+i);
}
char *my_strcpy(char *str1,const char *str2){int i=0;while(*(str2+i)){*(str1+i)=*(str2+i);i++;}*(str1+i)='\0';return str1;
}
int my_strlen(char *str1){int i=0;while(*(str1+i))i++;return i;
}
int main(int argc, char const *argv[])
{char str1[]="Hello";char str2[]="World";printf("%s\n",my_strcat(str1,str2));printf("%d\n",my_strcmp(str1,str2));printf("%s\n",my_strcpy(str1,str2));printf("%d\n",my_strlen(str1));return 0;
}
程序: