1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,
输入9,输出9*9口诀表,输出12,输出12*12的乘法口诀表。
2.使用函数实现两个数的交换。
3.实现一个函数判断year是不是润年。
4.创建一个数组,
实现函数init()初始化数组、
实现empty()清空数组、
实现reverse()函数完成数组元素的逆置。
要求:自己设计函数的参数,返回值。
5.写一个函数能够对整型数组进行二分查找。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//1.打印乘法表
//void Multiplication_Table(int n)
//{
// int i = 0;
// for (i = 1; i <= n; i++)
// {
// int j = 0;
// for (j = 1; j <= i; j++)
// {
// printf("%d*%d=%d ", i, j, i*j);
// }
// printf("\n");
// }
//}
//
//int main()
//{
// int n = 0;
// scanf("%d", &n);
// Multiplication_Table(n);
// return 0;
//}
//2.实现两个数交换
//void Swap(int* a, int* b)
//{
// int temp = 0;
// temp = *a;//temp=a=1
// *a = *b;//a=b=5
// *b = temp;//b=temp=1
//}
//int main()
//{
// int a = 0, b = 0;
// printf("a=");
// scanf("%d", &a);
// printf("b=");
// scanf("%d", &b);
// Swap(&a, &b);
// printf("a=%d,b=%d\n", a, b);
// return 0;
//}
//3.判断闰年
//void Leap_Year(int year)
//{
// if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
// {
// printf("%d is leap year\n", year);
// }
// else
// {
// printf("%d isn't leap year\n", year);
// }
//}
//
//void main()
//{
// while (1)
// {
// int year = 2000;
// printf("year:");
// scanf("%d", &year);
// Leap_Year(year);
// }
//}
//4.初始、逆置、清空数组
//void init(int p[],int sz)
//{
// int i = 0;
// for (i = 0; i < sz; i++)
// {
// p[i] = i;
// printf("%d ", p[i]);
// }
//}
//void empty(int p[],int sz)
//{
// int i = 0;
// for (i = 0; i < sz; i++)
// {
// p[i] = 0;
// printf("%d ", p[i]);
// }
//}
//void reverse(int p[], int sz)
//{
// int i = 0;
// int left = 0, right = sz-1;
// int temp = 0;
// for (i = 0; i < sz - 1; i++)
// {
// while (left < right)
// {
// temp = p[left];
// p[left] = p[right];
// p[right] = temp;
// left++;
// right--;
// }
// printf("%d ", p[i]);
// }
//}
//void main()
//{
// int p[10];
// int sz = sizeof(p) / sizeof(p[0]);
// printf("\n初始:");
// init(p,sz);
// printf("\n逆置:");
// reverse(p, sz);
// printf("\n清空:");
// empty(p, sz);
//}
//5.对数组二分查找
int Binary_Search(int p[], int x, int sz)
{
int left = 0, right = sz - 1;
int mid = 0;
while (left <= right)
{
mid = left + (right - left) / 2;
if (x < p[mid])
{
right = mid - 1;
}
else if (x > p[mid])
{
left = mid + 1;
}
else
{
return mid;
}
}
return -1;
}
void init(int p[],int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
p[i] = i*10;
printf("%d ", p[i]);
}
}
void main()
{
int key = 0;
int x = 50;
int p[10];
int sz = sizeof(p) / sizeof(p[0]);
init(p, sz);
key = Binary_Search(p, x, sz);
printf("\n%d\n", p[key]);
}