今日讨论一些函数的使用
1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,
输入9,输出99口诀表,输入12,输出1212的乘法口诀表。
分析:
先定义一个函数,在函数内部说明其功能,然后再主函数中调用该函数,实现乘法口诀表的打印
#define _CRT_SECURE_NO_WARNINGS
#include"stdio.h"
#include"stdlib.h"
void Print(int n){
int i, j; //定义i行和j列
for (i = 1; i <= n; i++){ //控制行
for (j = 1; j <= i; j++){ //控制列
printf("%d*%d=%d\t", i, j, i*j);
}
printf("\n");
}
}
main()
{
int n=0;
printf("please input a number:\n");
scanf("%d",&n);
Print(n); //调用函数
system("pause");
}
2.使用函数实现两个数的交换
分析
在swap函数中实现两个数交换的过程,然后在主函数中,输入想要交换的数,调用函数,输出结果。
#define _CRT_SECURE_NO_WARNINGS
#include"stdio.h"
#include"stdlib.h"
void swap(int* a, int *b){
int t;
t = *a, *a = *b, *b = t;
}
main(){
int a, b;
printf("please input two numbers:\n");
scanf("%d %d", &a, &b);
swap(&a, &b);
printf("%d %d\n", a, b);
system("pause");
}
3.实现一个函数判断year是不是润年。
分析:在函数中给定判断条件,是闰年则返回1,不是闰年则返回0.在主函数中调用该函数进行判断。
#define _CRT_SECURE_NO_WARNINGS
#include"stdio.h"
#include"stdlib.h"
int IsLeapyear(int n){ //是闰年返回1,不是闰年返回0
if ((n % 4 == 0 && n % 100 != 0) || n % 400 == 0){
return 1;
}
else{ return 0; }
}
main(){
int n;
printf("please input one year number:\n");
scanf("%d", &n);
if (IsLeapyear(n))
{
printf("%d是闰年\n",n);
}
else
{
printf("%d不是闰年\n",n);
}
system("pause");
}
4.创建一个数组,
实现函数init()初始化数组、
实现empty()清空数组、
实现reverse()函数完成数组元素的逆置。
要求:自己设计函数的参数,返回值。
分析:自己设计三个函数,分别用来实现数组初始化,数组清空,数组元素的逆置,然后再主函数中分别调用他们。
#define _CRT_SECURE_NO_WARNINGS
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
void InitArry(int a[], int length){
int i=0;
for (i = 0; i < length; i++)
{
a[i] = i; //初始化数组
printf("%d ", a[i]);
}
}
void EmptyArry(int a[], int length)
{
int i = 0;
for (i = 0; i < length; i++)
{
a[i] = 0;
printf("%d ", a[i]);
}
}
void ReverseArry(int a[], int length){
int i = 0;
int left = 0;
int right = length - 1;
for (i = 0; i < length; i++){
while (left < right){
int t;
t = a[left];
a[left] = a[right];
a[right] = t;
left++;
right--;
}
printf("%d", a[i]);
}
}
main(){
int a[10];
int length = sizeof(a) / sizeof(a[0]);
printf("数组初始化:\n");
InitArry(a, length);
printf("\n");
printf("数组元素的逆置:\n");
ReverseArry(a, length);
printf("\n"); //函数的调用
printf("数组清空:\n");
EmptyArry(a, length);
printf("\n");
system("pause");
}
5.实现一个函数,判断一个数是不是素数。
分析:设计一个函数,给出判断素数的条件,如果是素数则返回1,如果不是素数,则返回0.在主函数中输入想要判断的数,调用此函数,若满足条件则输出是素数,否则 ,输出不是素数。
#define _CRT_SECURE_NO_WARNINGS
#include"stdio.h"
#include"stdlib.h"
int Isprime(int n){
int i;//是素数返回1,不是素数返回0
if (n <= 1)
return 0;
if (n == 2)
return 1;
for (i = 2; i <= sqrt(n); i++){ //判断什么情况下是素数
if (n%i == 0){
return 0;
}
}
}
void main(){
int n;
printf("please input a number:\n");
scanf("%d", &n);
if ((Isprime(n))){ //调用函数
printf("%d是素数\n", n);
}
else{
printf("%d不是素数\n", n);
}
system("pause");
}