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

C基础寒假练习(7)

一、有 1、2、3、4个数字,能组成多少互不相同且无重复的三位? 都是多少?

#include <stdio.h>
int main() 
{// 定义数字数组int digits[] = {1, 2, 3, 4};int n = sizeof(digits) / sizeof(digits[0]);// 嵌套循环遍历所有排列for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {if (j != i) { // 确保没有重复for (int k = 0; k < n; k++) {if (k != i && k != j) { // 确保没有重复// 输出三位数printf("%d%d%d\n", digits[i], digits[j], digits[k]);}}}}}return 0;
}

解释代码:
定义数字数组:digits[] 数组存储了数字 1, 2, 3, 4。
三层嵌套循环:通过三层循环遍历所有可能的组合。
外层循环选择百位数字。
中层循环选择十位数字,确保与百位不同。
内层循环选择个位数字,确保与百位和十位都不同。
输出结果:在符合条件的情况下,使用 printf 函数输出三位数

二、输入两个正整数m和n,求其最大公约数和最小公倍数

#include <stdio.h>
int main(int argc, const char *argv[])
{int m, n;printf("请输入两个正整数:\n");scanf("%d,%d", &m, &n);if (m > n){for (int a = n; a > 0; a--){if (m % a == 0 && n % a == 0){printf("最大公约数是:%d\n", a);break;}}}else if (m <= n){for (int a = m; a > 0; a--){if (m % a == 0 && n % a == 0){printf("最大公约数是:%d\n", a);break;}}}return 0;
}

代码解释

1.包含头文件:

#include <stdio.h>

        
这行代码包含了标准输入输出库,以便使用 printf 和 scanf 函数。

2.主函数定义:

int main(int argc, const char *argv[])


这是程序的主入口点。argc 和 argv 是命令行参数的数量和值,但在这个程序中没有实际使用。

3.变量声明:

int m, n;


声明了两个整型变量 m 和 n,用于存储用户输入的两个正整数。

4.提示用户输入:

printf("请输入两个正整数:\n");


打印提示信息,要求用户输入两个正整数。

5.读取用户输入:

scanf("%d,%d", &m, &n);


使用 scanf 函数读取用户输入的两个整数,并分别存储在变量 m 和 n 中。注意,这里假设用户输入时会用逗号分隔两个数字。

6.判断并计算最大公约数:

如果 m 大于 n:
 

if (m > n)
{for (int a = n; a > 0; a--){if (m % a == 0 && n % a == 0){printf("最大公约数是:%d\n", a);break;}}
}


从 n 开始递减,找到第一个同时能被 m 和 n 整除的数,即为最大公约数。
如果 m 小于或等于 n:

else if (m <= n)
{for (int a = m; a > 0; a--){if (m % a == 0 && n % a == 0){printf("最大公约数是:%d\n", a);break;}}
}


从 m 开始递减,找到第一个同时能被 m 和 n 整除的数,即为最大公约数。
7.返回值:

      

return 0;


表示程序正常结束。

教师版:

#include<stdio.h>int main(int argc, const char *argv[])
{// 定义两个整数变量m和nint m, n;// 从标准输入读取两个整数存入变量m和nscanf("%d%d", &m, &n);// 定义循环变量i和标志变量flagint i, flag;// 遍历从1到m和n中较小的那个数for (i = 1; i <= (m > n ? n : m); i++){// 如果i能同时整除m和n,则将flag设为iif (m % i == 0 && n % i == 0){flag = i;}}// 输出最大公约数和最小公倍数printf("最大公约数为%d,最小公倍数为%d\n", flag, m * n / flag);return 0;
}

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

相关文章:

  • Ajax:重塑Web交互体验的人性化探索
  • 【DeepSeek背后的技术】系列二:大模型知识蒸馏(Knowledge Distillation)
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.14 内存映射:处理超大型数组的终极方案
  • 【C++】STL——vector的使用
  • springboot/ssm互联网智慧医院体检平台web健康体检管理系统Java代码编写
  • 介绍一下Mybatis的Executor执行器
  • Wide Deep 模型:记忆能力与泛化能力
  • Hot100之矩阵
  • Python语言的安全开发
  • 蓝桥杯刷题DAY3:Horner 法则 前缀和+差分数组 贪心
  • java项目验证码登录
  • 手写MVVM框架-环境搭建
  • 2025年2月2日(网络编程 tcp)
  • 【Docker项目实战】使用Docker部署MinIO对象存储(详细教程)
  • 使用ollama本地部署Deepseek r1
  • Unity飞行代码 超仿真 保姆级教程
  • DeepSeek蒸馏模型:轻量化AI的演进与突破
  • 使用 sunshine+moonlight 配置串流服务无法使用特殊键
  • 5.角色基础移动
  • 单细胞-第四节 多样本数据分析,下游画图
  • Linux的循环,bash的循环
  • 【DeepSeek开发】Python实现股票数据可视化
  • 华为小米vivo向上,苹果荣耀OPPO向下
  • 毕业设计:基于深度学习的高压线周边障碍物自动识别与监测系统
  • el-table表格点击单元格实现编辑
  • 数据结构:时间复杂度
  • SPI(Serial Peripheral Interface)串行外围设备接口
  • Java 8 Stream API
  • 亚博microros小车-原生ubuntu支持系列:21 颜色追踪
  • GESP6级语法知识(六):(动态规划算法(六)多重背包)