1>
要求:
源代码:
#include<stdio.h>
#define N 50
#define M 50
#define n 5
void print_yanghui_triangle(int arr[][M]);
int main(int argc,char *argv[])
{
int arr[N][M];
print_yanghui_triangle(arr);
return 0;
}
void print_yanghui_triangle(int a[][M])
{
int i,j;
a[1][1]=1;
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
if(i==j||j==1)
a[i][j]=1;
else
{
a[i][j] = a[i - 1][j - 1] +a[i - 1][j];
}
printf("%-3d",a[i][j]);
}
printf("\n");
}
}
效果图:
2>
要求:
源代码:
#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;
}
效果图:
3>
要求:
源代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void str_cpy(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=strlen(dest);
int len_src=strlen(src);
printf("s1=%s,s2=%s\n",dest,src);
str_cpy(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");
printf("s1=%s\n",s1);
}
效果图:
4>
要求:
源代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void str_cat(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=strlen(dest);
int len_src=strlen(src);
str_cat(len_dest,len_src,dest,src);
return 0;
}
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\n",s1);
}
效果图:
5>
要求:
源代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int atoi_num(char s[]);
int main(int argc,char *argv[])
{
char string[50];
printf("enter string:\n");
scanf("%s",string);
int a=atoi_num(string);
printf("atoi_num=%d\n",a);
return 0;
}
int atoi_num(char s[])
{
int i=0,n=0;
if (s[i]==' ') i++;
int j=i;
if(s[i]=='+'||s[i]=='-')
{
i++;
}
while(s[i]!='\0')
{
if(s[i]>='0'&&s[i]<='9')
{
n=n*10+(s[i]-'0');
}
else break;
i++;
}
if(s[j]=='-')
{
n=-n;
}
return n;
}
效果图:
6>
要求:
源代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define M 2
#define N 3
void turn_arr(int a[][N]);
int main(int argc,char *argv[])
{
int arr[M][N];
printf("enter arr[%d][%d]\n",M,N);
for(int i=0;i<M;i++)
for(int j=0;j<N;j++)
scanf("%d",&arr[i][j]);
printf("After turn:\n");
turn_arr(arr);
return 0;
}
void turn_arr(int a[][N])
{
int b[N][M];
int i,j;
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
b[i][j]=a[j][i];
}
}
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
printf("%-3d",b[i][j]);
if(j==M-1) printf("\n");
}
}
}
效果图:
7>
要求:
源代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 5
int scdMin(int len,int a[]);
int main(int argc,char *argv[])
{
//求一维数组第二小值
int arr[5];
printf("enter arr[%d]\n",N);
int i=0,len=0;
while(i<N)
{
scanf("%d",&arr[i++]);
len++;
}
printf("enter pass\n");
//传入数组长度和数组
int index=scdMin(len,arr);
printf("Second min=%d\n",arr[index]);
return 0;
}
int scdMin(int len,int a[])
{
//先求出最小值的下标minIndex
int minIndex =0;
int i=0;
while(i<len)
{
if(a[minIndex]>=a[i])
minIndex=i;
i++;
}
//同理求出第二小值的下标index
int j=0,index=0;
while(j<len)
{
if(a[j]!=a[minIndex])//只有a[j]不等于最小值的情况下才比较大小
{
if(a[index]>=a[j])
index=j;
}
j++;
}
return index;
}
效果图:
8>
要求:
源代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int fun(int n)
{
if(n==0) return 1;
else
{
return (n%10)*fun(n/10);
}
}
int main(int argc,char *argv[])
{
int number;
scanf("%d",&number);
int mul=fun(number);
printf("%d\n",mul);
return 0;
}
效果图:
9>
思维导图: