一、编程实现二维数组的杨辉三角。
代码:
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
int main(int argc, const char *argv[])
{
int n;
printf("please enter n:");
scanf("%d",&n);
int arr[n][n];
for(int i=0;i<n;i++)
{
for(int j=0;j<=i;j++)
{
if(j==0)
arr[i][j]=1;
else if(i==j)
arr[i][j]=1;
else
arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
printf("%-2d",arr[i][j]);
}
puts("");
}
return 0;
}
运行:
二、编程实现二维数组计算每一行的和以及列和。
代码:
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
int main(int argc, const char *argv[])
{
int arr[3][3]={10,20,30,11,22,33,10,10,10};
int line1=0,line2=0,line3=0,row1=0,row2=0,row3=0;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if(i==0)
line1+=arr[i][j];
if(i==1)
line2+=arr[i][j];
if(i==2)
line3+=arr[i][j];
if(j==0)
row1+=arr[i][j];
if(j==1)
row2+=arr[i][j];
if(j==2)
row3+=arr[i][j];
}
}
printf("line1=%d,line2=%d,line3=%d\nrow1=%d,row2=%d,row3=%d\n",line1,line2,line3,row1,row2,row3);
return 0;
}
运行
三、编程实现二维数计算第二大值
代码:
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
int main(int argc, const char *argv[])
{
int arr[2][3]={11,66,8,22,99,66};
int max=arr[0][0];
int min=arr[0][0];
for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
{
if(max<arr[i][j])
max=arr[i][j];
if(min>arr[i][j])
min=arr[i][j];
}
}
int max2=min;
for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
{
if(max2<arr[i][j]&&arr[i][j]!=max)
max2=arr[i][j];
}
}
printf("max2=%d\n",max2);
return 0;
}
运行:
四、使用非函数方法实现系统函数strcat,strcmp,strcpy,strlen。
代码:
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
void my_strcat(char *dest,const char *src)
{
int i=0;
while(*(dest+i))
i++;
int j=0;
while(*(src+j))
{
*(dest+i+j)=*(src+j);
j++;
}
*(dest+i+j)='\0';
}
int my_strcmp(const char *s1,const char *s2)
{
int i=0;
while(*(s1+i)==*(s2+i))
i++;
return *(s1+i)-*(s2+i);
}
void my_strcpy(char *dest,const char *src)
{
int i=0;
while(*(src+i))
{
*(dest+i)=*(src+i);
i++;
}
*(dest+i)='\0';
}
int my_strlen(const char *dest)
{
int i;
for(i=0;*(dest+i);i++);
return i;
}
int main(int argc, const char *argv[])
{
char dest[32]="hello ";
char src[8]="2024";
/* my_strcat(dest,src);
puts(dest);
int dif=my_strcmp(dest,src);
if(dif>0)
puts(">");
else if(dif<0)
puts("<");
else
puts("=");
my_strcpy(dest,src);
puts(dest);
*/ int len=my_strlen(dest);
printf("dest len=%d\n",len);
return 0;
}
运行