11个c语言编程练习题

news2024/12/27 17:43:41

0. 钞票和硬币

money.c

读取一个带有两个小数位的浮点数,代表货币价值。将该值分解为多种钞票和硬币的和,要求使用的钞票和硬币的总数量尽可能少。 货币面值有100,50,20,10,5,1,0.5,0.1,0.05,0.01。

#include <stdio.h>
 
int main() {
    float input;
    printf("输入货币价值: ");
    scanf("%f", &input);
 
    float money[] = {100.00, 50.00, 20.00, 10.00, 5.00, 1.00, 0.50, 0.10, 0.05, 0.01};//钞票 和 硬币 
 
    for (int i = 0; i < 10; i++) {
        int count = input / money[i];
        if(count!=0) printf("%d个%.2f元 ", count, money[i]);
        input -= count * money[i];
    }
 
    return 0;
}

在这里插入图片描述


1. 算术平方根

square_root.c

用二分法的方法求一个非负数的算术平方根,精度到0.0001
eg: 输入3.8输出1.9494

#include <stdio.h>
#include <math.h>
 
double sqrt_binary(double num, double epsilon) {
    double left = 0;
    double right = num;
    double mid;
    while (right - left > epsilon) {
        mid = (left + right) / 2;
        if (mid * mid > num) {
            right = mid;
        } else {
            left = mid;
        }
    }
    return (left + right) / 2;
}
 
int main() {
    float input_num;
    printf("输入非负数: ");
    scanf("%f", &input_num);
    double epsilon = 0.0001; 
    double result = sqrt_binary(input_num, epsilon);
    printf("算术平方根为: %.4f", result);
    return 0;
}

在这里插入图片描述


2. 哥德巴赫猜想

Goldbach_conjecture.c

验证哥德巴赫猜想:任何一大于6的偶数均可表示为两个质数之和。即,输入一个大于6的偶数,输出一组满足条件的两个质数。
eg: 输入20 输出3 17

#include <stdio.h>

int is_prime(int num) {
	int i;
    if (num <= 1) return 0;
    for (i = 2; i * i <= num; i++) {
        if (num % i == 0) return 0;
    }
    return 1;
}// 检查一个数是否为质数

int main() {
    int n,i;
    printf("请输入一个大于6的偶数: ");
    scanf("%d", &n);
    if (n <= 6 || n % 2 != 0) {
        printf("输入无效,请输入一个大于6的偶数。\n");
        return 1;
    }
    // 寻找两个质数,使其和等于 n
    for (i = 2; i <= n / 2; i++) {
        if (is_prime(i) && is_prime(n - i)) {
            printf("%d %d\n", i, n - i);
            return 0; // 找到一对质数后退出
        }
    }
    printf("未找到符合条件的质数对。\n");
    return 0;
}

在这里插入图片描述

3. 打印星号菱形

rhombus.c

打印星号组成的菱形图案

#include <stdio.h>

int main() {
    int i, j, k, n = 4;  // n 菱形的一半高度(即上三角形的行数)
    for (i = 1; i <= n; i++) { // 上半部分(包括中间行)
        for (j = 1; j <= n - i; j++) {
            printf(" ");  // 打印前导空格,使*居中
        }
        for (k = 1; k <= 2 * i - 1; k++) {
            printf("*");  // 打印*
        }
        printf("\n");  // 换行
    }
    for (i = n - 1; i >= 1; i--) { // 下半部分
        for (j = 1; j <= n - i; j++) {
            printf(" ");  // 打印前导空格,使*居中
        }
        for (k = 1; k <= 2 * i - 1; k++) {
            printf("*");  // 打印*
        }
        printf("\n");  // 换行
    }
    return 0;
}

在这里插入图片描述

4. 分解质因数

factorize_into_prime.c

质因数分解是将一个合数(非质数)分解为若干个质数的乘积。将一个正整数分解质因数。例如:输入90,打印出90=233*5。

#include <stdio.h>

int is_prime(int num) {
	int i;
    if (num <= 1) return 0;
    for (i = 2; i * i <= num; i++) {
        if (num % i == 0) return 0;
    }
    return 1;
}// 检查一个数是否为质数


int main() {
    int n, i;
    printf("请输入需要分解的正整数(大于3且为非质数): ");
    scanf("%d", &n);
	//printf("分解质因数的结果为: %d=", n);
	if(n>3 && is_prime(n)==0) {
		printf("%d=", n);
		for (i = 2; i <= n; i++) {
        while (n % i == 0) {
            printf("%d", i);
            n = n / i;
            if (n > 1)  // 如果 n 不是最后一个质因数,则打印 '*'
                printf("*");
			}
    	}
	}    	
    else printf("输入不合理"); 
    printf("\n");
    return 0;
}

在这里插入图片描述

5. 整数的所有因数

factors.c

假如a*b=c(a、b、c都是整数),那么我们称a和b就是c的因数。

#include <stdio.h>
  
int main()
{
    int n, i;
    printf("输入一个整数: ");
    scanf("%d",&n);
    printf(" %d 的因数有: ", n);
    for(i=1; i <= n; ++i)
    {
        if (n%i == 0)
        {
            printf("%d ",i);
        }
    }
    return 0;
}

在这里插入图片描述

6. 两数的所有公因数

common_factor.c

寻找两个数的所有公因数。

#include <stdio.h>

int main()
{
    int n1, n2, i;
    printf("输入两数:");
    scanf("%d %d", &n1, &n2);
    for (i = 1; i <= (n1 > n2 ? n2 : n1) ; ++i)
    {
        if (n1%i == 0 && n2%i == 0)
        {
            printf("%d ", i);
        }
    }
    return 0;
}

在这里插入图片描述

7. 求Sn=a+aa+….(n个a)之值

sum.c

求Sn=a+aa+aaa+….+aa…a(n个a)之值,其中a是一个数字,n表示a的位数,a和n由键盘输入。

#include <stdio.h>
int main(){
	int a,n,s=0,m,k;
	printf("请输入a和n: \n");
	scanf("%d %d",&a,&n);
	k=a;
	for(m=1;m<=n;m++){
		s=s+k;
		k=k*10+a;
	}
	printf("Sn=%d\n",s);
	return 0;
}

在这里插入图片描述

8. 小球反弹

ball.c

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下后再次反弹,按此规律,直到第8次反弹时,反弹多少高度?行程共有多少米?

#include <stdio.h>
int main(){
	float h=100,s=100;
	int i;
	for(i=1;i<=8;i++){
		h=h/2;
		s=s+h*2;
	}
	printf("第8次反弹时,反弹高度h=%f,行程共有s=%f\n",h,s-h);
}

在这里插入图片描述

9. 换分币

coins.c

用一元人民币兑换成1分、2分和5分硬币,共有多少种不同的兑换方法。总硬币数目小于等于100.

#include<stdio.h>
int main() {
	int i, j, k, count = 1;
	printf("兑换方法 : \n");
	for (i = 0; i <= 100; i++) {
		for (j = 0; j <=100 - i; j += 2) {
		for (k = 0; k <= 100 - i - 2* j; k += 5) {
			if (i +j + k == 100){
			printf((count-1) % 4 ? "法%d:1*%d+2*%d+5*%d\t":"法%d:1*%d+2*%d+5*%d\n", count++,i,j/2,k/5);
		}}}}			
	return 0; 	
}

在这里插入图片描述

10. 分数之和

sum1.c

求这样的四个自然数p,q,r,s(p<=q<=r<=s),使得以下等式成立:
1 p + 1 q + 1 r + 1 s = 1 \frac{1}{p}+\frac{1}{q}+\frac{1}{r}+\frac{1}{s}=1 p1+q1+r1+s1=1

#include <stdio.h>
int main() {
    int p, q, r, s;
    for (p = 1; p <= 100; p++) { //遍历所有可能的p,q,r,s的值,设上限为100,可调
        for (q = p; q <= 100; q++) {
            for (r = q; r <= 100; r++) {
                for (s = r; s <= 100; s++) {
                    if (1.0/p + 1.0/q + 1.0/r + 1.0/s == 1) {
                        printf("p=%d\tq=%d\tr=%d\ts=%d\t" //太长了换个行 
						"1/%2d + 1/%2d + 1/%2d + 1/%2d = 1\n", p, q, r, s, p, q, r, s);
                    }}}}}
    return 0;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2241006.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LaTeX之四:如何兼容中文(上手中文简历和中文论文)、在win/mac上安装新字体。

改成中文版 如果你已经修改了.cls文件和主文档&#xff0c;但编译后的PDF仍然显示英文版本&#xff0c;可能有以下几个原因&#xff1a; 编译器问题&#xff1a;确保你使用的是XeLaTeX或LuaLaTeX进行编译&#xff0c;因为它们对Unicode和中文支持更好。你可以在你的LaTeX编辑器…

K8S如何基于Istio实现全链路HTTPS

K8S如何基于Istio实现全链路HTTPS Istio 简介Istio 是什么?为什么选择 Istio?Istio 的核心概念Service Mesh(服务网格)Data Plane(数据平面)Sidecar Mode(边车模式)Ambient Mode(环境模式)Control Plane(控制平面)Istio 的架构与组件Envoy ProxyIstiod其他组件Istio 的流量管…

安全见闻-泷羽sec课程笔记

编程语言 C语言&#xff1a;一种通用的、面向过程的编程语言&#xff0c;广泛应用于系统软件和嵌入式开发。 C:在C语言基础上发展而来&#xff0c;支持面向对象编程&#xff0c;常用于尊戏开发、高性能计算等领域。 Java:一种广泛使用的面问对象编程语言&#xff0c;具有跨平台…

论文笔记(五十六)VIPose: Real-time Visual-Inertial 6D Object Pose Tracking

VIPose: Real-time Visual-Inertial 6D Object Pose Tracking 文章概括摘要I. INTRODACTIONII. 相关工作III. APPROACHA. 姿态跟踪工作流程B. VIPose网络 文章概括 引用&#xff1a; inproceedings{ge2021vipose,title{Vipose: Real-time visual-inertial 6d object pose tra…

LeetCode 热题100(八)【二叉树】(3)

目录 8.11二叉树展开为链表&#xff08;中等&#xff09; 8.12从前序与中序遍历序列构造二叉树&#xff08;中等&#xff09; 8.13路径总和III&#xff08;中等&#xff09; 8.14二叉树的最近公共祖先&#xff08;中等&#xff09; 8.15二叉树中的最大路径和&#xff08;困…

【C语言】Union

一.Union的用法 1.什么是Union? union 共用体名{ 成员列表 }; union&#xff0c;“联合体、共用体”&#xff0c;在某种程度上类似结构体struct的一种数据结构&#xff0c;共用体(union)和结构体(struct)同样可以包含很多种数据类型和变量。 2.为什么使用union&#xff1…

Postgresql源码(138)alter table增加列的执行流程分析

alter table 逻辑比较繁琐&#xff0c;但并不复杂&#xff0c;这里以增加列为例简单梳理流程。 测试用例 drop table t_echo; create table t_echo(a int,b int); insert into t_echo select t.i, t.i*10 from generate_series(1,10) t(i); alter table t_echo add c varchar…

MobaXterm 软件及如何设置取消自动断开连接

MobaXterm 软件及如何设置取消自动断开连接 背景软件资料取消自动断开连接找打设置找到SSH Setting 背景 其实很容易找到类似的资料, 主要为了简单的记录一下, 还是写一下这个博客吧, 也算是自己的输出了. 当练习打字也行吧, 反正自己打字也是一坨, 打字太慢了. 软件资料 官…

【代码审计】常见漏洞专项审计-业务逻辑漏洞审计

❤️博客主页&#xff1a; iknow181 &#x1f525;系列专栏&#xff1a; 网络安全、 Python、JavaSE、JavaWeb、CCNP &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐评论✍ 0x01 漏洞介绍 1、 原理 业务逻辑漏洞是一类特殊的安全漏洞&#xff0c;业务逻辑漏洞属于设计漏洞而非实…

YOLOv11实战垃圾分类

本文采用YOLOv11作为核心算法框架&#xff0c;结合PyQt5构建用户界面&#xff0c;使用Python3进行开发。YOLOv11以其高效的特征提取能力&#xff0c;在多个图像分类任务中展现出卓越性能。本研究针对4种垃圾数据集进行训练和优化&#xff0c;该数据集包含丰富的垃圾图像样本&am…

Kafka集群中数据的存储是按照什么方式存储的?

1&#xff09;Topic 数据的存储机制 Topic是逻辑上的概念&#xff0c;而partition是物理上的概念&#xff0c;每个partition对应于一个log文件&#xff0c;该log文件中存储的就是Producer生产的数据。Producer生产的数据会被不断追加到该log文件末端&#xff0c;为防止log文件…

渗透测试靶场 - vulhub -CVE漏洞 Weblogic 任意文件上传漏洞(CVE-2018-2894) 漏洞讲解 漏洞复现 亲测步骤能通过哟

漏洞说明 Weblogic管理端未授权的两个页面存在任意上传jsp文件漏洞&#xff0c;可直接获取服务器权限。 两个页面 /ws_utc/begin.do /ws_utc/config.do Oracle 在2018年7月更新中&#xff0c;修复了Weblogic Web Service Test Page中一处任意文件上传漏洞&#xff0c; Web Se…

使用 PyTorch 实现 AlexNet 进行 MNIST 图像分类

AlexNet 是一种经典的深度学习模型&#xff0c;它在 2012 年的 ImageNet 图像分类比赛中大放异彩&#xff0c;彻底改变了计算机视觉领域的格局。AlexNet 的核心创新包括使用深度卷积神经网络&#xff08;CNN&#xff09;来处理图像&#xff0c;并采用了多个先进的技术如 ReLU 激…

基于图的去中心化社会推荐过滤器

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;编程探索专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月11日19点20分 点击开启你的论文编程之旅https://www.aspiringcode.com/content?id17176636216843&uideba758a1550b46bb…

深度学习模型评价指标介绍

模型评价指标 模型评价指标1.混淆矩阵2.Overall Accuracy3.Average accuracy4.Kappa系数5.Recall6.Precision7.F18.PR曲线9.置信度10.IOU11.AP12.mAP 模型评价指标 在我们学习机器学习以及深度学习&#xff0c;甚至在计算机视觉领域&#xff0c;我们不可避免的要利用一些指标评…

k8s 1.28.2 集群部署 docker registry 接入 MinIO 存储

文章目录 [toc]docker registry 部署生成 htpasswd 文件生成 secret 文件 生成 registry 配置文件创建 service创建 statefulset创建 ingress验证 docker registry docker registry 监控docker registry ui docker registry dockerfile docker registry 配置文件 S3 storage dr…

【自用】0-1背包问题与完全背包问题的Java实现

引言 背包问题是计算机科学领域的一个经典优化问题&#xff0c;分为多种类型&#xff0c;其中最常见的是0-1背包问题和完全背包问题。这两种问题的核心在于如何在有限的空间内最大化收益&#xff0c;但它们之间存在一些关键的区别&#xff1a;0-1背包问题允许每个物品只能选择…

Zookeeper的安装与使用

一、简介 1.1、概念 ZooKeeper 是一个开源的分布式协调服务&#xff0c;主要用于解决分布式系统中的数据一致性问题。它提供了一种可靠的机制来管理和协调分布式系统的各个节点。ZooKeeper 的设计目标是简化分布式应用的开发&#xff0c;提供简单易用的接口和高性能、高稳定性…

【模块一】kubernetes容器编排进阶实战之etcd的介绍与使用

etcd进阶 etcd简介&#xff1a;  etcd是CoreOS团队于2013年6月发起的开源项目&#xff0c;它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法&#xff0c;etcd基于Go语言实现。 官方网站&#xff1a;https://etcd.io/  gith…

【机器学习】如何配置anaconda环境(无脑版)

马上就要上机器学习的实验&#xff0c;这里想写一下我配置机器学习的anaconda环境的二三事 一、首先&#xff0c;下载安装包&#xff1a; Download Now | Anaconda 二、打开安装包&#xff0c;一直点NEXT进行安装 这里要记住你要下载安装的路径在哪&#xff0c;后续配置环境…