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;
else
arr[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;
}
程序: