【嵌入式学习】C基础day01.07---函数

一、思维导图

【嵌入式学习】C基础day01.07---函数_第1张图片

二、练习 

1、在主函数定义二维数组,在有参无返函数中实现杨辉三角

代码部分

#include 
#include 
#include 
void fun(int n)
{
	int arr[n][n];
	for(int i=0;i

运行结果

 【嵌入式学习】C基础day01.07---函数_第2张图片

2、在主函数定义二维数组并输入,在有参有返函数中计算二维数组的第二大值

代码部分

#include 
#include 
#include 
int fun(int arr[][6],int n)
{
	int max=arr[0][0];
	int lemax={1};
	for (int i=0;imax)
			max=arr[i][j];
		}
	}

	for(int i=0;ilemax)
		{
			lemax=arr[i][j];
		}
		}
	}
	return lemax;
}


int main(int argc, const char *argv[])
{
	int n=6;
	int arr[n][n];
	 for (int i = 0; i < n; i++) 
	 {
        for (int j = 0; j < n; j++) 
		{
            arr[i][j] = 0;
        }
    }
	for (int i=0;i<=0;i++)
	{		
		for(int j=0;j

运行结果

【嵌入式学习】C基础day01.07---函数_第3张图片

3、在主函数定义两个字符串并输入,在有参无返函数中实现字符串拷贝

#include 
#include 
#include 
void Strcmp(char str1[],char str2[])
{
	int i;
	for(i=0;str2[i]!='\0';i++)
	{
		str1[i]=str2[i];
	}
	str1[i]='\0';
	puts(str1);
}

int main(int argc, const char *argv[])
{
	char str1[20];
	char str2[5];
	gets(str1);
	gets(str2);
	Strcmp(str1,str2);
	return 0;
}

运行结果

4、在主函数中定义两个字符串并输入,并在有参无返函数中实现字符串的链接

代码部分

#include 
#include 
#include 
void Strcat(char str1[],char str2[])
{
	int i,j;
	for(i=0;str1[i]!='\0';i++);
	for(j=0;str2[j]!='\0';j++)
	{
		str1[i+j]=str2[j];
	}
	str1[i+j]='\0';
	puts(str1);
}
int main(int argc, const char *argv[])
{
	char str1[20];	
	char str2[20];
	gets(str1);
	gets(str2);
	Strcat(str1,str2);
	return 0;
}

运行结果

5、在主函数中定义一个字符串并输入,在有参有返函数中实现atoi

#include 
#include 
#include 
int Atoi(char str[])
{
	int i=0,sum=0;
	while(str[i]==' ')
	{
		i++;
	}
	int j=i;
	if(str[i]=='-' || str[i]=='+')
	{
		i++;
	}
	while(str[i]!='\0')
	{
		if(str[i]<='9' && str[i]>=0)
		{
			sum=sum*10+(str[i]-'0');
		}
		else
		{
			break;
		}
		i++;
	}
	if(str[j]=='-')
	{
		sum=-sum;
	}
	return sum;
}

int main(int argc, const char *argv[])
{
	char str[20];
	gets(str);
	int sum=Atoi(str);
	printf("%d",sum);
	return 0;
}

运行结果

6、在主函数定义二维数组并输入,在有参无返函数中实现二维数组转置

#include 
#include 
#include 
void fun(int arr[][3])
{
	int arr1[3][2];
	int i,j;
	for(i=0;i<2;i++)
	{
		for(j=0;j<3;j++)
		{
			arr1[j][i]=arr[i][j];
		}
	}
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<2;j++)
		{
			printf("%-4d",arr1[i][j]);
		}
		printf("\n");
	}
}
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++)
		{
		printf("please enter arr:\n");
			scanf("%d",&arr[i][j]);
		}
	}
	fun(arr);
	return 0;
}

运行结果

【嵌入式学习】C基础day01.07---函数_第4张图片

7、在主函数定义一维数组并输入,在有参有返函数中计算一维数组的第二小值

#include 
#include 
#include 
int fun(int n,int arr[n])
{
	int les=arr[0];
	for (int i=0;iles && arr[i]

运行结果

【嵌入式学习】C基础day01.07---函数_第5张图片

8、递归计算各个数字的乘积

代码部分

#include 
#include 
#include 
int fun(int num)
{
	int mul=num%10;
	if(num==0)
	{
		return 1;
	}
	else
	{
	num/=10;
	return mul*fun(num);
	}
}
int main(int argc, const char *argv[])
{
	int num;
	scanf("%d",&num);
	fun(num);
	printf("mul=%d\n",fun(num));
	return 0;
}

运行结果

【嵌入式学习】C基础day01.07---函数_第6张图片

你可能感兴趣的:(学习)