c语言函数定义、使用和代码(详细)

c语言函数定义、使用和代码(详细)


笔者觉得任何的理论都比不上亲手实验来的印象深刻,代码看的多了,打的多了,语法和定义也就记得很清楚了,当然笔者也在向这方面一步步努力。接下来给读者带来比较经典的c语言函数的例题,用例题来包含知识点,以点带面。
在这里插入图片描述

矩阵转置

题目:
在这里插入图片描述
解析:对于方阵的行列互换,根据高等数学的知识,即沿对角线进行元素的互换,知道这个知识后就很好理解和编程了。

#include<stdio.h>

void inv(int a[][3])
{
    
    
	int i,j;
	int temp;
	for(i=0;i<3;i++)
	{
    
    
		for(j=i+1;j<3;j++)
		{
    
    
			temp = a[i][j];
			a[i][j] = a[j][i];
			a[j][i] = temp;
		}
	}
	for(i=0;i<3;i++)
	{
    
    
		for(j=0;j<3;j++)
		{
    
    
			printf("%d",a[i][j]);
		}
		printf("\n");
	}
}

int main()
{
    
    
	int a[3][3]={
    
    {
    
    1,2,3},{
    
    4,5,6},{
    
    7,8,9}};
	inv(a);

	return 0;
}

最长单词的输出

题目:在这里插入图片描述
解析:显然句子中,每个单词之间由空格隔开,这也是我们记录单词个数和长度的关键。

#include<stdio.h>
#include<string.h>
int main()
{
    
    
	int alphabetic(char);
	int longest(char string[]);
	int i;
	char line[90];
	printf("input one line:\n");
	gets(line);
	printf("the longest word is :");
	for(i=longest(line);alphabetic(line[i]);i++)
	{
    
    
		printf("%c",line[i]);
	}
	printf("\n");
	return 0;
}

int alphabetic(char c)
{
    
    
	if(c>='a'&&c<='z'||c>='A'&&c<='Z')
	{
    
    
		return 1;
	}
	else
	{
    
    
		return 0;
	}
}

int longest(char string[])
{
    
    
	int len=0,i,length=0,flag=1,place=0,point;
	for(i=0;i <= strlen(string);i++)
	{
    
    
		if(alphabetic(string[i]))
		{
    
    
			if(flag)
			{
    
    
				point=i;
				flag=0;
			}
			else
			{
    
    
				len++;
			}
		}
		else
		{
    
    
			flag=1;
			if(len>=length)
			{
    
    
				length=len;
				place=point;
				len=0;
			}
		}
	}
	return place;
}

递归求n阶勒让德多项式的值

题目:
在这里插入图片描述
解析:对于递归,还记得最经典的例子就算汉诺塔问题,哈哈哈(笔者至今还印象深刻)。下面对n阶勒让德多项式值的求解运用的也是递归的思想,即函数本身调用本身,知道输出结果,这也是递归的魅力之处,希望读者能好好体会一下。

#include<stdio.h>

float derland(int n,float x)
{
    
    
	float f;
	if(n==0)
	{
    
    
		f=1;
	}
	else if(n==1)
	{
    
    
		f=x;
	}
	else
	{
    
    
		f=((2*n-1)*x-derland(n-1,x)-(n-1)*derland(n-2,x))/n;
	}
	return f;
}

int main()
{
    
    
	int n;
	float x,result;
	printf("input n and x:\n");
	scanf("%d%f",&n,&x);
	result=derland(n,x);
	printf("the result is %f\n",result);
	return 0;
}

谢谢大家的悉心阅读,比心。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wlfyok/article/details/107407965