C语言程序实验二

news/2025/3/21 20:20:03/文章来源:https://www.cnblogs.com/njx342561/p/18784191
实验任务1:
#include <stdio.h>
#include <stdlib.h> 
#include <time.h>#define N 5int main()
{int number;int i;srand(time(0));for(i = 0; i<N; ++i){number = rand()%100 +1;printf("20490042%04d\n", number);}return 0;}  

问题1:生成一个范围1~100的随机整数。

问题2:保证在20490042后面的整数会占据4个字符的宽度,值不足会在前面补0。

问题3:以20490042为前缀在尾号0001到0100之间随机抽取五位学员

实验任务2:

#include <stdio.h>int main(){int choice,quantity;float total_price = 0, amount_paid, change;while(1){printf("\n自动饮料售卖机菜单:\n");printf("1. 可乐 - 3 元/瓶\n");printf("2. 雪碧 - 3 元/瓶\n");printf("3. 橙汁 - 5 元/瓶\n");printf("4. 矿泉水 - 2 元/瓶\n");printf("0. 退出购买流程\n");printf("请输入饮料编号: ");scanf("%d", &choice);if (choice ==0)break;if (choice < 1 || choice > 4){printf("无效的饮料编号,请重新输入。\n");continue;}printf("请输入购买的数量:");scanf("%d", &quantity);if (quantity <0){printf("购买数量不能为负数,请重新输入。 \n");continue;}switch (choice){case 1:case 2:total_price += 3 * quantity;break;case 3:total_price += 5 * quantity;break;case 4:total_price += 2 * quantity;break;}printf("请投入金额:");scanf("%f", &amount_paid);change = amount_paid- total_price;printf("本次购买价格: %.2f 元\n", total_price);printf("找零: %.2f 元\n", change);total_price = 0; }printf("感谢您的购买,欢迎下次光临!\n");return 0;
} 

问题1:将total_price的值重置为0,保证下一次购买时总额会从0开始计算;如果去掉的话total_price的值会被叠加。

问题2:break的作用是跳出当前的while循环,即当choice的值为0时终止循环;contine的作用是继续执行所在if语句外的循环。区别:break会直接终止循环,而contine会继续执行剩下来的循环语句。

问题3:我认为依然有必要添加default子句。原因:虽然循环中已经添加了判断choice一个在0,1,2,3,4中取值的语句,但添加一个default子句有利于我们在编写代码后及时查找和发现其他可能存在的问题。

试验任务3:

#include <stdio.h>int main()
{int x;char n;while(scanf("%lf", &x) != EOF){n = getchar();switch(n){case 'r':printf("stop!\n");break;case 'g':printf("go go go\n");break;case 'y':printf("wait a minute\n");break;default:printf("something must be wrong\n");break;}}return 0;} 

 

实验任务4:

#include <stdio.h>int main()
{double x, sum, max=0, min=20000;int n=1;printf("输入今日开销,直到输入-1为止\n");while(1){scanf("%lf", &x);if (x != -1){sum+=x;}else break;if (x<0 || x>20000){printf("一天内费用不会超过两万元,不会低于零元");break; }if(max<=x)max=x;if(min>=x)min=x;}printf("今日累计消费总额:%.1f\n", sum);printf("今日最高一笔开销:%.1f\n", max);printf("今日最低一笔开销:%.1f\n", min);return 0;}

 实验任务5:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>int main()
{int n, i, ans;printf("猜猜2025年4月哪一天是你的lucky day\n");srand((unsigned int)time(NULL));n= rand()%30 + 1;printf("开始喽,你有三次机会,猜吧(1~30):");for(i=1;i<=3;i++){scanf("%d", &ans);if(ans>n){printf("你猜的日期晚了,你的lucky day在前面哦\n");}else if(ans<n){printf("你猜的日期早了,你的lucky day还没到呢\n");}else{printf("哇,猜中了:)\n") ;break;}}if(i>3){printf("次数用完啦,偷偷告诉你,4月你的lucky day是%d号\n", n);}return 0;}

实验任务6:

#include <stdio.h>int  main()
{int n, i, j;scanf("%d", &n);for (j=1;j<=n;j=j+1){for (i = 1; i <= j-1; i = i + 1)printf("    \t");for (i = 1; i <= 2*(n+1-j)-1; i = i + 1)printf("  O \t");printf("\n");for (i = 1; i <= j-1; i = i + 1)printf("    \t");for (i = 1; i <= 2*(n+1-j)-1; i = i + 1)printf(" <H> \t");printf("\n");for (i = 1; i <= j-1; i = i + 1)printf("    \t");for (i = 1; i <= 2*(n+1-j)-1; i = i + 1)printf(" I I \t");printf("\n");}return 0;
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智慧工地合规穿戴监测系统

智慧工地合规穿戴监测系统基于计算机视觉的未佩戴安全帽检测算法通过实时视频流分析,可突破人工监管的物理局限,实现724小时全场景覆盖。该技术通过深度学习模型对人体姿态、头部特征进行精准识别,快速定位违规行为,为安全监管提供数据化、智能化的升级路径。核心算法模型采…

停车场立体车库人员滞留报警系统

停车场立体车库人员滞留报警系统采用AI算法,通过大量真实的场景样本训练后,能够在各种应用场景下及时准确的对场景中发生的人员入侵行为发出告警信息。通过对实时视频图像进行智能分析识别,可实现图像全屏周界防护、划定区域周界防护等功能。前端智能AI预警摄像机设备嵌入AI…

解决:按钮被禁用--Popconfirm 气泡确认框仍然可以弹出来展示

按钮被禁用,仍然可以点击,并弹出提示框 <template><a-popconfirmtitle="Are you sure delete this task?"ok-text="Yes"cancel-text="No"@confirm="confirm"@cancel="cancel"> <!-- 按钮被禁用 -->&l…

服务器发送事件(SSE)在现代Web开发中的关键作用

在快速发展的Web开发领域,采用能够增强用户体验并简化数据流的前沿技术对开发者至关重要。服务器发送事件(SSE)正是其中的一项技术。本指南旨在介绍SSE的概念、关键特性、常见应用场景、一个实际的实现示例,并讲解如何使用Apipost调试这些事件。 什么是SSE? 服务器发送事件…

人员非法进入货梯监控报警摄像头

人员非法进入货梯监控报警摄像头对于厂区车间货梯轿厢有人闯入,有很好的预防效果。现场曾发生过货梯运行有员工误进的事件,对安全监控造成严重威胁,对该位置进行实时监控较为重要。货梯监测人员报警摄像机是嵌入AI人体识别算法,对人体的精确检测、跟踪,实现对人体检测分析…

Apifox 与 Apipost 接口状态自定义功能对比:企业级项目的接口管理优化

在现代企业级项目开发中,接口状态管理不仅仅是项目开发中的一个小模块,而是影响团队协作效率、项目推进进度和合规性的重要因素。特别是在中大型项目中,由于涉及多个协作部门与复杂的业务流程,对接口状态的定义和流转有着更高的灵活性要求。然而,不同工具在接口状态管理功…

Windows 提权-服务_弱注册表权限

本文通过 Google 翻译 Weak Registry Key Permissions – Windows Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。导航0 前言 1 搜寻服务的弱权限注册表项1.1 枚举弱权限注册表项:accesschk.exe 1.2 枚举弱权限注册…

【每日一题】20250321

人嘛,反正就是这样。表面上做的跟心里想的,完全是两码事。表里不一,这很正常。【每日一题】 1.(14分) \(\hspace{0.7cm}\)如图所示的平面直角坐标系 \(xOy\),在第 \(\mathrm{I}\) 象限内有平行于 \(y\) 轴的匀强电场,方向沿 \(y\) 轴正方向;在第 \(\mathrm{IV}\) 象限的…

2025最新面试题-场景面试题MQ

RabbitMQ的消息处理模型 RabbitMQ的消息处理模型RabbitMQ 是一个基于 AMQP(Advanced Message Queuing Protocol) 协议的消息队列系统生产者(Producer)交换器(Exchange)路由键(Routing Key)队列(Queue)消费者(Consumer)生产者(Producer)生产者是消息的发送者,负责…

day:26 selenium——滚动条、key类

一.滚动条 代码:window.scrollTo(0,2000) from selenium import webdriver #导入selenium模块中的webdriver from selenium.webdriver.support.select import Select import time dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象 dx.get("https://www.jd.c…

day:27 unittest实战梳理

一.将cms写入到unittest框架中 1.main调用所有用例import unittest from selenium import webdriver from time import * class Cms(unittest.TestCase):@classmethoddef setUpClass(cls) -> None:pass@classmethoddef tearDownClass(cls) -> None:passdef s…

Redis问题 - Redis-cli.exe无法连接

Redis-cli.exe无法连接解决:打开redis-sever.exe 再回到redis-cli正常