当前位置: 首页 > news >正文

函数练习.

1.打印乘法口诀表

口诀表的行数和列数自己指定如:输入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 (left<=right)
​{
​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.创建一个整形数组,完成对数组的操作

  1. 实现函数init() 初始化数组为全0

  2. 实现print() 打印数组的每个元素

  3. 实现reverse() 函数完成数组元素的逆置。

要求:自己设计以上函数的参数,返回值。

void Init(int arr[], int sz, int set)
{int i = 0;for(i=0; i<sz; i++){arr[i] = set;}
}
​
​
void Print(int arr[], int sz)
{int i = 0;for(i=0; i<sz; i++){printf("%d ", arr[i]);}printf("\n");
}
​
​
void Reverse(int arr[], int sz)
{int left = 0;int right = sz-1;
​
​while(left<right){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;
}

http://www.lryc.cn/news/349081.html

相关文章:

  • Git 分支命令操作详解
  • 十二生肖Midjourney绘画大挑战:释放你的创意火花
  • 【C++】priority_queues(优先级队列)和反向迭代器适配器的实现
  • Go语言函数
  • 如何使用EasyExcel导入百万数据
  • 【解决】Unity Build 应用程序运行即崩溃问题
  • C++数据结构——红黑树
  • Java并发编程:学习路线图
  • 算法_前缀和
  • C语言(指针)7
  • 线程纵横:C++并发编程的深度解析与实践
  • 在阿里云服务器上安装MySQL
  • 国标GB28181协议EasyCVR视频汇聚平台获取设备录像仅展示部分片段的原因排查
  • Java的类和对象(一)—— 初始类和对象,this关键字,构造方法
  • 富格林:曝光虚假套路规避亏损
  • 数据源网站分享
  • Flutter 中的 CupertinoAlertDialog 小部件:全面指南
  • 【RAG 论文】UPR:使用 LLM 来做检索后的 re-rank
  • 安全风险 - 如何解决 setAccessible(true) 带来的安全风险?
  • 创建继承自QObject的线程:一个详细指南
  • java项目之智慧图书管理系统设计与实现(springboot+vue+mysql)
  • 分享一些人生道理,希望能对大家有所帮助!
  • 【设计模式】JAVA Design Patterns——Abstract-document(抽象文档模式)
  • 5.13网络编程
  • 那些年使用过的UA头
  • IT技术产品:开发者极为重要的思维习惯
  • 软件产品质量模型及其子特性
  • 神经网络中的误差反向传播(Backpropagation)方法理解
  • Day 32 shell变量及运算
  • 八、VUE内置指令