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

C语言课后作业练习1

作业一:基础操作用法

作业二:字符转+数组+转义字符

作业三:关键字+语句

define 不是关键字,是预处理指令。

作业四:static

作业五:实例操作1

//给定两个数,求这两个数的最大公约数

//打印1000年到2000年之间的闰年

//打印100~200之间的素数

作业六:实例操作2

//计算1/1-1/2+1/3-1/4+1/5…+1/99-1/100 的值,打印出结果

//输出十个数里面最大的值

//猜数字


#include <stdio.h>
#include <stdlib.h> // 用于 rand() srand()
#include <time.h> // 用于 time()

// 猜数字核心逻辑
void guess()
{
// 1. 生成 1~100 的随机数
int num = rand() % 100 + 1;
int input = 0;

printf("===== 猜数字游戏开始 =====\n");
printf("数字已生成(1~100),请开始猜:\n");

// 2. 循环猜数字
while (1)
{
scanf("%d", &input);

if (input > num)
{
printf("猜大了!再试试:\n");
}
else if (input < num)
{
printf("猜小了!再试试:\n");
}
else
{
printf("恭喜你,猜对了!数字是:%d\n", num);
break; // 猜对退出循环
}
}
}

// 菜单
void menu()
{
printf("**************************\n");
printf("******** 1. 开始游戏 ********\n");
printf("******** 0. 退出游戏 ********\n");
printf("**************************\n");
printf("请选择:");
}

int main()
{
// 设置随机数种子(只需要执行一次)
srand((unsigned int)time(NULL));

int choice = 0;
do
{
menu(); // 打印菜单
scanf("%d", &choice);

switch (choice)
{
case 1:
guess(); // 开始猜数字
break;
case 0:
printf("退出游戏,再见!\n");
break;
default:
printf("输入错误,请重新选择!\n");
break;
}
} while (choice); // 选择 0 才退出

return 0;
}

//二分查找

// 二分查找函数
// 参数:数组,元素个数,要查找的数字
// 返回值:找到返回下标,找不到返回 -1
int binary_search(int arr[], int left, int right, int target)
{
// 左右指针不重合,就继续找
while (left <= right)
{
// 1. 计算中间下标 (防止溢出写法)
int mid = left + (right - left) / 2;

// 2. 中间元素 == 目标值 → 找到了
if (arr[mid] == target)
{
return mid; // 返回下标
}

// 3. 中间元素 < 目标值 → 去右边找
else if (arr[mid] < target)
{
left = mid + 1;
}

// 4. 中间元素 > 目标值 → 去左边找
else
{
right = mid - 1;
}
}

// 循环结束没找到 → 返回 -1
return -1;
}

int main()
{
// 有序数组(必须有序!)
int arr[] = { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 };
// 计算数组长度
int len = sizeof(arr) / sizeof(arr[0]);

int target = 0;
printf("请输入要查找的数字:");
scanf("%d", &target);

// 调用二分查找
int result = binary_search(arr, 0, len - 1, target);

if (result != -1)
{
printf("找到了,下标是:%d\n", result);
}
else
{
printf("没找到!\n");
}

return 0;
}

作业七:函数

作业八:实例操作3

题目内容:

实现一个函数,判断一个数是不是素数。

利用上面实现的函数打印100到200之间的素数。

// 1. 判断素数的函数
// 返回 1 = 是素数
// 返回 0 = 不是素数
int isPrime(int num)
{
// 小于2的数不是素数
if (num < 2)
return 0;

// 高效判断:只需要判断到根号num
for (int i = 2; i * i <= num; i++)
{
// 如果能被整除,说明不是素数
if (num % i == 0)
{
return 0;
}
}

// 所有数都不能整除 → 是素数
return 1;
}

int main()
{
printf("100到200之间的素数有:\n");

// 2. 循环 100~200
for (int i = 100; i <= 200; i++)
{
// 调用素数函数判断
if (isPrime(i) == 1)
{
printf("%d ", i); // 是素数就打印
}
}

return 0;
}

判断闰年

// 判断闰年函数
// 返回 1 = 是闰年
// 返回 0 = 不是闰年
int isLeapYear(int year)
{
// 闰年判断公式
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
{
return 1;
}
return 0;
}

int main()
{
int year = 0;
printf("请输入年份:");
scanf("%d", &year);

if (isLeapYear(year) == 1)
{
printf("%d 是闰年\n", year);
}
else
{
printf("%d 不是闰年\n", year);
}

return 0;
}

http://www.jsqmd.com/news/476621/

相关文章:

  • 揭秘!目前评价好的文化石供应商——河北仁石贸易有限公司,砌墙石/文化石/石材/地铺石/天然石/贴墙石,文化石品牌有哪些 - 品牌推荐师
  • 【PHP类型安全新纪元】:从8.0到8.9,6个被低估的类型系统breaking change及平滑过渡checklist
  • 2026年初,如何选择靠谱的防水检测服务商? - 2026年企业推荐榜
  • 2026年3月,选不锈钢管?先看口碑好的厂家圆钢零切评测,不锈钢酸洗管/不锈钢方管,不锈钢管各种切割焊接加工找哪家 - 品牌推荐师
  • ESP32-S2 AT固件Wi-Fi配网与TCP/IP实战指南
  • 【MySQL】Go操作MySQL从入门到实战:环境搭建+语法+CRUD全解析
  • 2026年3月光伏用传感器供应商口碑排行,值得关注,电压互感器/互感器/电流互感器/漏电传感器,传感器定制排行 - 品牌推荐师
  • 如何集成单点登录和设计子系统的权限管理二
  • 南大复试 - 软工真题
  • 从霍尔信号到六步换向:有霍尔BLDC电机驱动实战解析
  • 【AI改变未来】从技术突破到行业重塑,我们正站在智能革命的奇点上
  • BUUCTF [GWCTF 2019] 数据库的秘密:CVE-2018-12613漏洞实战解析
  • STM32CubeMx 配置三相互补PWM + 死区时间计算
  • 一、JavaScript 获取系统时间
  • 初始Python篇(10)—— 初识 类与对象
  • HTML5的结构、概述、优势
  • 基于Zabbix 6.4与Helm 3的Kubernetes 1.28集群监控实战指南
  • OpenClaw 生成测试用例
  • 前端工程化实践:前端项目打包命名策略全解析
  • 从对接构象到稳定轨迹:氧合血红素cpdI复合物Amber/Gromacs模拟全流程解析
  • Highcharts React v4.2.1 正式发布:更自然的React开发体验,更清晰的数据处理
  • 2026年性价比轿车托运服务商深度评测与选购指南 - 2026年企业推荐榜
  • No.905 S7-200 PLC和组态王组态温度PID控制加热 S7-200 PLC和组态王...
  • 2026年郑州黄金回收店深度测评:基于检测实力与资金安全的五维对比 - 品牌推荐
  • Windows 11 VBS与eNSP兼容性冲突:从原理到实战解决启动报错40
  • SQL优化新纪元:从索引策略到查询性能的全面提升
  • 推荐一个实用的网址导航站:jiafangbb.com
  • AI人机协同从前沿选题挖掘、智能写作工程、顶刊图表可视化、到精准选刊投稿与审稿博弈策略的一站式实践
  • 离散数学实战解析:命题公式类型判定与优化方法
  • openclaw v2026.3.11正式发布:安全强化、内核优化与跨平台体验全面升级