1.请编程实现二维数组的杨慧三角
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int n,i,j;
printf("please enter n:");
scanf("%d",&n);
int arr[n][n];
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
if(j==0 || i==j)
arr[i][j]=1;
else
{
arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
}
printf("%d",arr[i][j]);
}
printf("\n");
}
效果显示:
2.请编程实现二维数组计算每一行的和以及列和
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
int arr[2][3];
for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
{
scanf("%d",&arr[i][j]);
}
}
int h1,h2,l1,l2,l3;
h1=h2=l1=l2=l3=0;
for(int i=0;i<3;i++)
{
h1+=arr[0][i];
h2+=arr[1][i];
}
for(int i=0;i<2;i++)
{
l1+=arr[i][0];
l2+=arr[i][1];
l3+=arr[i][2];
}
printf("h1=%d,h2=%d\n",h1,h2);
printf("l1=%d,l2=%d,l3=%d\n",l1,l2,l3);
return 0;
}
效果显示:
3.请编程实现二维数组计算第二大值
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int arr[2][3];
for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
{
scanf("%d",&arr[i][j]);
}
}
int max=arr[0][0];
int second=arr[0][0];
int i,j;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
if(max<=arr[i][j])
{
max=arr[i][j];
}
}
}
i=j=0;
if(second==max)
{
second=arr[i+1][j+1];
}
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
if(second<=arr[i][j]&&arr[i][j]!=max)
{
second=arr[i][j];
}
}
}
printf("second=%d\n",second);
return 0;
}
效果显示:
4. 请使用非函数方法实现系统函数strcat,strcmp,strcpy,strlen
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void cpy(char a[10],char b[10]);
void cat(char a[10],char b[10]);
void len(char a[10]);
void cmp(char a[10],char b[10]);
int main(int argc, const char *argv[])
{
char a[10];
char b[10];
printf("please enter a:");
gets(a);
printf("please enter b:");
gets(b);
//cpy(a,b);
//cat(a,b);
cmp(a,b);
len(a);
return 0;
}
void cpy(char a[10],char b[10])
{
int i=0;
while(b[i]!='\0')
{
a[i]=b[i];
i++;
}
a[i]='\0';
puts(a);
puts(b);
}
void cat(char a[10],char b[10])
{
int i=0,j=0;
while(a[i]!='\0')
{
i++;
}
while(b[j]!='\0')
{
a[i+j]=b[j];
j++;
}
a[i+j]='\0';
puts(a);
puts(b);
}
void len(char a[10])
{
int i;
for(i=0;a[i]!='\0';i++);
printf("len=%d\n",i);
}
void cmp(char a[10],char b[10])
{
int i=0;
while(a[i]==b[i])
{
if(a[i]=='\0')
break;
i++;
}
if(a[i]-b[i]>0)
puts("a>b");
else if(a[i]-b[i]<0)
puts("a<b");
else if(a[i]-b[i]==0)
puts("a==b");
}
效果显示: