建设银行锦州分行网站,携程的网站建设,短链接一键生成,深圳网站建设9681.打印乘法口诀表
口诀表的行数和列数自己指定如#xff1a;输入9#xff0c;输出99口诀表#xff0c;输出12#xff0c;输出1212的乘法口诀表。
multiplication(int index) {
if (index 9) {
int i 0;
for (i 1; i 10; i) {
int j 0;
for (j 1; j 输入9输出9×9口诀表输出12输出12×12的乘法口诀表。
multiplication(int index) {
if (index 9) {
int i 0;
for (i 1; i 10; i) {
int j 0;
for (j 1; j i; j) {
printf(%d * %d %d , i, j, i * j);
}
printf(\n);
}
}
if (index 12) {
int i 0;
for (i 1; i 13; i) {
int j 0;
for (j 1; j i; j) {
printf(%d * %d %d, i, j, i * j);
}
printf(\n);
}
}
}
int main() {
int index 0;
scanf(%d, index);
multiplication(index);
}
2.写一个二分查找函数
功能在一个升序数组中查找指定的数值找到了就返回下标找不到就返回-1.
int bin_search(int arr[], int left, int right, int key) {
// arr 是查找的数组
//left 数组的左下标
//right 数组的右下标
//key 要查找的数字
while (leftright)
{
int mid left (right - left) / 2;//防止整形溢出
if (arr[mid] key) {
return mid;
break;
}
else if(arr[mid]key) //中间值小于右边
{
left mid 1; //左下标往右
}
else
{
left mid - 1; //中间值大于右边 左下标往左
}
}
return -1;
}
//二分查找
int main() {
int key 0;
int arr[10] { 1,2,3,4,5,6,7,8,9,10 };
printf(请输入你想要查找的元素:\n);
scanf(%d, key);
int sz sizeof(arr) / sizeof(arr[0]);
int left 0;
int right sz-1;
int ret bin_search(arr,left,right,key);
if (ret ! -1) {
printf(元素%d,的数组下标为%d, key, ret);
}
else {
printf(没找到,返回%d, ret);
}
return 0;
}
3.判断闰年
int is_leap_year(int y);//函数声明 两种方法
int is_leap_year(int); //函数声明 形参可以省略
int main()
{
int y 0;
scanf(%d, y);
int r is_leap_year(y);
if (r 1)
printf(闰年\n);
else
printf(⾮闰年\n);
return 0;
}
//函数定义
int is_leap_year(int y) { //判断闰年函数 只有两种情况 用bool类型
if (((y % 4 0) (y % 100 ! 0) || (y % 400 0)))
return 1;
else
return 0;
}
4.判断素数 实现一个函数is_prime判断一个数是不是素数。 利用上面实现的is_prime函数打印100到200之间的素数。
#include stdio.h
#include stdbool.h
#include math.h
// 判断一个数是否是素数
bool is_prime(int n) {
// 如果 n 小于 2则不是素数
if (n 2) {
return false;
}
// 如果 n 是 2则是素数
if (n 2) {
return true;
}
// 如果 n 是偶数则不是素数
if (n % 2 0) {
return false;
}
// 检查 n 是否可以被小于或等于其平方根的奇数整除
int limit (int) sqrt(n) 1;
for (int i 3; i limit; i 2) {
if (n % i 0) {
return false;
}
}
// 如果没有找到可以整除 n 的数则 n 是素数
return true;
}
int main() {
// 打印100到200之间的素数
for (int num 100; num 200; num) {
if (is_prime(num)) {
printf(%d\n, num);
}
}
return 0;
}
5.创建一个整形数组完成对数组的操作 实现函数init() 初始化数组为全0 实现print() 打印数组的每个元素 实现reverse() 函数完成数组元素的逆置。
要求自己设计以上函数的参数返回值。
void Init(int arr[], int sz, int set)
{int i 0;for(i0; isz; i){arr[i] set;}
}
void Print(int arr[], int sz)
{int i 0;for(i0; isz; i){printf(%d , arr[i]);}printf(\n);
}
void Reverse(int arr[], int sz)
{int left 0;int right sz-1;
while(leftright){int tmp arr[left];arr[left] arr[right];arr[right] tmp;left;right--;}
}
int main()
{int arry[] { 0,1,2,3,4,5,6,7,8,9 };int sz sizeof(arry) / sizeof(arry[0]);Print(arry, sz);Reverse(arry, sz);Print(arry, sz);Init(arry, sz,0);Print(arry, sz);return 0;
}