1,在主函数定义二维数组,在有参无返函数中实现杨慧三角
#include
void yh(int n,int a[n][n]);
int main(int argc, const char *argv[])
{
int n;
printf("please enter n:");
scanf("%d",&n);
int a[n][n];
yh(n,a);
return 0;
}
void yh(int n,int a[n][n])
{
for(int i=0;i
2.在主函数定义二维数组并输入,在有参有返函数中计算二维数组的第二大值
eg:数组元素是124 345344
则第二大值是12
返回第二大值
#include
int Max_2(int line, int row,int a[][row]);
int main(int argc, const char *argv[])
{
int a[3][2]={12,4,34,5,34,4};
int line = sizeof(a)/sizeof(a[0]);
int row = sizeof(a[0])/sizeof(a[0][0]);
printf("max_2=%d\n",Max_2(line,row,a));
return 0;
}
int Max_2(int line, int row,int a[][row])
{
int i,j;
int max=a[0][0];
int max_2=a[0][0];
for(i=0;i
3.在主函数中定义两个字符串并输入,在有参无返函数中实现字符串拷贝
#include
void my_strcpy (char a[20],char b[20]);
int main(int argc, const char *argv[])
{
char a[20]="";
printf("please enter a:");
gets(a);
char b[20]="";
printf("please enter b:");
gets(b);
my_strcpy(a,b);
return 0;
}
void my_strcpy (char a[20],char b[20])
{
int i=0;
for(i=0;b[i]!='\0';i++)
{
a[i]=b[i];
}
a[i]='\0';
puts(a);
}
4.在主函数中定义两个字符串并输入,在有参无返函数中实现字符串链接
#include
void my_strcat(char a[20],char b[20]);
int main(int argc, const char *argv[])
{
char a[20]="";
printf("please enter a:");
gets(a);
char b[20]="";
printf("please enter b:");
gets(b);
my_strcat(a,b);
return 0;
}
void my_strcat(char a[20],char b[20])
{
int i,j;
for(i=0;a[i]!='\0';i++);
for(j=0;b[j]!='\0';j++)
{
a[i+j]=b[j];
}
puts(a);
}
5.在主函数中定义一个字符串并输入,在有参有返函数中是atoi
#include
int my_atio(char a[20]);
int main(int argc, const char *argv[])
{
char a[20]="";
printf("please enter a:");
gets(a);
int sum = my_atio(a);
printf("sum=%d",sum);
return 0;
}
int my_atio(char a[20])
{
int i,j,s;
i=0;
while(a[i]==' ')
{
i++;
}
if (a[i]=='-'||a[i]=='+')
{
j=i;
i++;
}
s=0;
while(a[i]!='\0')
{
if(a[i]>='0'&&a[i]<='9')
{
s=s*10+(a[i]-'0');
}
else
{
break;
}
i++;
}
if(a[j]=='-')
s=-s;
return s;
}
6.在主函数定义二维数组并输入,在有参无返函数中实现二维数组转置
#include
void turn(int line,int row,int a[][3]);
int main(int argc, const char *argv[])
{
int a[2][3];//={1,2,3,4,5,6};
printf("please enter a[2][3]:\n");
int line = sizeof(a)/sizeof(a[0]);
int row = sizeof(a[0])/sizeof(a[0][0]);
for(int i=0;i
7.在主函数定义一维数组并输入,在有参有返函数中计算一维数组的第二小值
eg:输入元素是12 4 32 5 34 4
则第二小值是5
#include
int min_2 (int n,int arr[n]);
int main(int argc, const char *argv[])
{
int arr[]={12,4,32,5,34,4};
int n=sizeof(arr)/sizeof(arr[0]);
printf("min_2=%d\n",min_2(n,arr));
return 0;
}
int min_2 (int n,int arr[n])
{
int i,j;
int min=arr[0];
int min2=arr[0];
for(i=0;iarr[i])
{
min=arr[i];
}
}
for(j=0;jarr[j]&&arr[j]!=min)
{
min2=arr[j];
}
}
return min2;
}
8.递归计算各个位数字的乘积。
2315--->2*3*1*5-->30
#include
int Sum(int num);
int main(int argc, const char *argv[])
{
int num;
printf("please enter num:");
scanf("%d",&num);
printf("mul=%d\n",Sum(num));
return 0;
}
int Sum(int num)
{
int s=0;
if(num/10==0)
{
return num%10;
}
else
{
s=num%10;
num/=10;
return Sum(num)*s;
}
}
思维导图