【C语言】函数在程序中的简单使用(编译环境:vs2013)

函数的使用:

函数是什么? 
     数学中我们常见到函数的概念。但是你了解C语言中的函数吗? 维基百科中对函数的定义:
            在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method, subprogram, callable unit),是一个大型程序中的某部分代码, 由一个或多个语句块组成。它负责完成某项特定任 务,而且相较于其他代 码,具备相对的独立性。 一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。

 

C语言中函数的分类: 


1. 库函数    2.自定义函数

1)库函数

   为什么会有库函数?
a. 我们知道在我们学习C语言编程的时候,总是在一个代码编写完成之后迫不及待的想知道结果,想把这个结果 打印到我们的屏幕上看看。这个时候我们会频繁的使用一个功能:将信息按照一定的格式打印到屏幕上 (printf)。

b. 在编程的过程中我们会频繁的做一些字符串的拷贝工作(strcpy)。

c. 在编程是我们也计算,总是会计算n的k次方这样的运算(pow)。

 为了支持可 移植性和提高程序的效率,所以C语言的基础库中提供了一系列类似的库函数,方便程序员进行软件开发。

   关于库函数的具体使用,大家可以在www.cplusplus.com上查询各个库函数的使用方法

2)自定义函数

自定义函数和库函数一样,有函数名,返回值类型和函数参数。 但是不一样的是这些都是我们自己来设计。这给程 序员一个很大的发挥空间。


  组成:

ret_type fun_name(para1, * )

{

   statement;      //语句项 

}

ret_type 返回类型 

fun_name 函数名

para1   函数参

  

接下来我们写几道习题来具体理解一下函数:

1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出9*9口诀表,输入12,输出12*12的乘法口诀表。

2.使用函数实现两个数的交换。

3.实现一个函数判断year是不是润年。

4.
创建一个数组,
实现函数init()初始化数组、
实现empty()清空数组、
实现reverse()函数完成数组元素的逆置。
要求:自己设计函数的参数,返回值。

5.实现一个函数,判断一个数是不是素数。

这几道题其实在前面的博客中有的已经写过,不过可能用的不是函数的方法,今天用函数的方法再打一遍

代码如下:


1.实现一个函数,打印乘法口诀表

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void Display(int h)
{
	int temp = 0;     //用来存储i*j的临时变量;
	for (int i= 1; i <= h; ++i)
	{
		for (int j = 1; j <= i; ++j)
		{
			temp = i * j;
			printf("%d*%d=%-5d", i, j, temp);
		}
		printf("\n");
	}
}
int main()
{
	printf("乘法口诀表,输入你想打印的行数:");
	int h = 0;                   //定义自己想打印的行数;
	scanf("%d", &h);
	Display(h);
        system("pause");
        return 0;
}

2.使用函数实现两个数的交换。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void swap(int a, int b)
{
	a ^= b;
	b ^= a;
	a ^= b;
	printf("交换后 a = %d,b = %d\n", a, b);
}
int main()
{
	int m = 0, n = 0;
	printf("请输入两个数a和b来交换他们的值:\n");
	scanf("%d %d", &m, &n);
	printf("交换前 a = %d,b = %d\n", m, n);
	swap(m, n);
	system("pause");
        return 0;
}

3.实现一个函数判断year是不是润年。

     这道题重要的就是闰年的定义,我相信很多人还不知道闰年的定义,关于这个,请点击这里查看闰年定义.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void count(int a)
{
	if ((a % 4 == 0 && a % 100 != 0) || (a % 400 == 0))
	{
		printf("%d is a leap year\n", a);
	}
	else
	{
		printf("%d is not a leap year\n",a);
	}
}
int main()
{
	printf("输入一个年份来判断它是不是闰年:");
	int year;
	scanf("%d", &year);
	count(year);
        system("pause");
        return 0;
}

4.
创建一个数组,
实现函数init()初始化数组、
实现empty()清空数组、
实现reverse()函数完成数组元素的逆置。
要求:自己设计函数的参数,返回值。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int menu()
{
	printf("************************************\n");
	printf("************1.初始化数组************\n");
	printf("************2.清空数组**************\n");
	printf("************3.数组逆置**************\n");
	printf("************0.退出程序**************\n");
	printf("************************************\n");
	int choice = 0;
	printf("\nplease input your choice:");
	scanf("%d", &choice);
	return choice;
}
void init(int *arr)    //初始化数组
{
	printf("\n");
	printf("初始化数组(输入十个整数):\n");
	for (int i = 0; i < 10; ++i)
	{
		scanf("%d", arr + i);
	}
	printf("数组为:\n");
	for (int i = 0; i < 10; ++i)
	{
		printf("%d ", arr[i]);
	}
	printf("\n\n");
}
void empty(int *arr)    //清空数组
{
	printf("\n");
	printf("数组清零:\n");
	for (int i = 0; i < 10; ++i)
	{
		arr[i] = 0;
	}
	for (int i = 0; i < 10; ++i)
	{
		printf("%d ", arr[i]);
	}
	printf("\n\n");
}
void reverse(int *arr)    //数组逆置
{
	printf("\n");
	printf("数组逆置:\n");
    //用对折的方法让数组进行逆置
	for (int i = 0; i < 5; ++i)
	{
		arr[i] ^= arr[9 - i];
		arr[9 - i] ^= arr[i];
		arr[i] ^= arr[9 - i];
	}
	for (int i = 0; i < 10; ++i)
	{
		printf("%d ", arr[i]);
	}
	printf("\n\n");
}
int main()
{
	int arr[10];    //定义一个包含十个整数的整形数组
	while (1)
	{
		int choice = menu();
		if (choice == 1)
		{
			init(arr);
		}
		else if (choice == 2)
		{
			empty(arr);
		}
		else if (choice == 3)
		{
			reverse(arr);
		}
		else if (choice == 0)
		{
			printf("\ngood bye!\n");
			break;
		}
		else
		{
			printf("您的输入有误,请重新输入:");
		}
	}
        system("pause");
        return 0;
}

5.实现一个函数,判断一个数是不是素数。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void count(int a)
{
	int i;
	for (i = 2; i <= sqrt(a); ++i)
	{
		if (a % i == 0)
		{
			break;
		}
	}
	if (i > sqrt(a))
	{
		printf("%d is a prime ", a);
	}
	else
	{
		printf("%d is not a prime", a);
	}
}
int main()
{
	int num = 0;
	printf("please input a number:");
	scanf("%d", &num);
	count(num);
        system("pause");
        return 0;
}

以上就是函数的基本使用方法以及几道相关的习题,谢谢观看^_^

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值