1>
要求:
源代码:
#include<stdio.h>
#define N 50
int main(int argc, char const *argv[])
{
int arr[N][N];
int n;
printf("please enter n :");
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i;j++)
{
if(j==1 ||i == j )
arr[i][j]=1;
else
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
printf("%d ",arr[i][j]);
}
printf("\n");
}
return 0;
}
效果图:
2>
要求:
源代码:
#include<stdio.h>
int main(int argc, char const *argv[])
{
int arr[3][4]={{10,50,40},{70,40},{19,24,69}};
int r_sum[3]={0},c_sum[4]={0};
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
r_sum[i]+=arr[i][j];
}
}
for(int j=0;j<4;j++)
{
for(int i=0;i<3;i++)
{
c_sum[j]+=arr[i][j];
}
}
for (int i = 0; i < 3; i++)
{
printf("第%d行的和为%d\n",i+1,r_sum[i]);
}
for (int j = 0; j < 4; j++)
{
printf("第%d列的和为%d\n",j+1,c_sum[j]);
}
return 0;
}
效果图:
3>
要求:
源代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define M 3
#define N 2
int scdMax(int m,int n ,int a[][n]);
int main(int argc,char *argv[])
{
//求一维数组第二大值
int arr[M][N];
for(int i=0;i<M;i++)
for(int j=0;j<N;j++)
{
scanf("%d",&arr[i][j]);
}
printf("enter pass\n");
int second=scdMax(M,N,arr);
printf("Second max=%d\n",second);
return 0;
}
int scdMax(int m,int n,int a[][n])
{
int max=a[0][0],min;
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
{
if(max<=a[i][j])
max=a[i][j];
if(max>=a[i][j])
min=a[i][j];
}
int second=min;
for(int i=0;i<m;i++)
for(int j=0;j<N;j++)
{
if(a[i][j]!=max)//只有j不等于最大值的情况下才比较大小
{
if(second<=a[i][j])
second=a[i][j];
}
}
return second;
}
效果图:
4>
要求:
源代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void str_cpy(int len1,int len2,char s1[],char s2[]);
void str_cat(int len1,int len2,char s1[],char s2[]);
int str_len(char s[]);
void str_cmp(int len1,int len2,char s1[],char s2[]);
int main(int argc,char *argv[])
{
char dest[50],src[50];
printf("enter dest[]:\n");
scanf("%s",dest);
printf("enter src[]:\n");
scanf("%s",src);
int len_dest=str_len(dest);
int len_src=str_len(src);
str_cat(len_dest,len_src,dest,src);
printf("s1=%s,s2=%s\n",dest,src);
str_cpy(len_dest,len_src,dest,src);
str_cmp(len_dest,len_src,dest,src);
return 0;
}
void str_cpy(int len1,int len2,char s1[],char s2[])
{
int i=0;
while(s2[i]!='\0')
{
s1[i]=s2[i];
i++;
}
s1[i]='\0';
printf("After copy--\t\n");
printf("s1=%s\n",s1);
}
void str_cat(int len1,int len2,char s1[],char s2[])
{
int i=0,j=0;
while(i<len1) i++;
while(j<len2)
{
s1[i++]=s2[j++];
}
s1[i]='\0';
printf("After cat--s[]=%s\t\n",s1);
}
int str_len(char s[])
{
int len=0;
for(int i=0;s[i]!='\0';i++)
len++;
return len;
}
void str_cmp(int len1,int len2,char s1[],char s2[])
{
int i=0;
while(s1[i]==s2[i])
{
if(s1[i]=='\0'||s2[i]=='\0')
break;
i++;
}
int t=s1[i]-s2[i];
printf("After cmp ---\t\n ");
if(t==0)
puts("s1==s2");
else t>0?puts("s1>s2"):puts("s1<s2");
}
效果图: