一、函数
1、实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定。例如9*9,,12*12等等。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void mul(int n)
{
int i = 1;
int j = 1;
int ret = 0;
for (i = 1;i <= n;i++)
{
for (j = 1;j <= i;j++)
{
ret = i * j;
printf("%3d*%d=%d", i, j, ret);
}
printf("\n");
}
}
int main()
{
int n=0;
scanf("%d", &n);
mul(n);
system("pause");
return 0;
}
2、使用函数实现两个数的交换。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void change(int x,int y)
{
int tmp;
tmp = x;
x = y;
y = tmp;
printf("i = %d,j = %d\n",x,y);
}
int main()
{
int i, j;
scanf("%d%d", &i, &j);
change(i,j);
system("pause");
return 0;
}
3、实现一个函数判断year是不是闰年。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int is_leap(int year)
{
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
{
return 1;
}
else
return 0;
}
int main()
{
int year = 0;
scanf("%d", &year);
if (is_leap(year) == 1)
{
printf("%d is a leap year\n", year);
}
else
printf("%d is not a leap year\n", year);
system("pause");
return 0;
}
4、实现一个函数,判断一个数是不是素数。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int is_prime(int n)
{
int i;
for (i = 2;i < sqrt(n);i++)
{
if (n%i == 0)
return 1;
}
return 0;
}
int main()
{
int n = 0;
scanf("%d", &n);
if (is_prime(n) == 1)
{
printf("%d is not a prime number\n", n);
}
else
printf("%d is a prime number\n", n);
system("pause");
return 0;
}
二、递归
1、递归和非递归分别实现求第n个斐波那契数。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
//int fib(int n)
//{
// if (n <= 2)
// return 1;
// else
// return fib(n - 1) + fib(n - 2);
//}
//递归
int fib(int n)
{
int a = 1;
int b = 1;
int c = 1;
while (n > 2)
{
c = a + b;
a = b;
b = c;
n--;
}
return c;
}
//非递归
int main()
{
int n;
int ret;
scanf("%d", &n);
ret = fib(n);
printf("%d\n", ret);
system("pause");
return 0;
}
2、递归和非递归分别实现求n的阶乘。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
//int fac(int n)
//{
// if (n < 1)
// return 1;
// else
// return n * fac(n - 1);
//}
//递归
int fac(int n)
{
int i = 1;
int k = 1;
for(i=1;i<=n;i++)
{
k *= i;
}
return k;
}
//非递归
int main()
{
int n;
int ret;
scanf("%d", &n);
ret = fac(n);
printf("%d\n", ret);
system("pause");
return 0;
}
3、递归方式实现打印一个整数的每一位。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void Print(int n)
{
if (n > 9)
{
Print(n/10);
}
printf("%d ", n%10);
}
int main()
{
int n = 0;
scanf("%d", &n);
Print(n);
system("pause");
return 0;
}