C语言程序设计:现代设计方法习题笔记《chapter6》上篇

news/2024/10/27 20:39:08/

第一题

 

示例代码

#include <stdio.h>
#include <stdlib.h> // 用于使用exit()函数int main() {double maxNumber = -1; // 初始设为-1,以便于第一个非负数可以直接成为当前最大值double currentNumber;// 循环读取用户输入while (1) {printf("Enter a number: ");if (scanf_s("%lf", &currentNumber) != 1) { // 检查输入是否正确printf("输入错误,请输入有效的数字。\n");fflush(stdin); // 清除错误输入continue;}// 如果输入的是0或负数,则退出循环if (currentNumber <= 0) {break;}// 如果当前输入的数大于已知的最大数,则更新最大数if (currentNumber > maxNumber) {maxNumber = currentNumber;}}// 输出结果if (maxNumber == -1) {printf("没有输入任何非负数。\n");}else {printf("The largest number entered was %lf\n", maxNumber);}return 0;
}

输出

                ​​​​​​​         

第二题

示例代码

#include <stdio.h>// 定义一个函数来计算两个数的最大公约数
int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;
}int main() {int num1, num2;printf("Enter two intergers: ");if (scanf_s("%d %d", &num1, &num2) != 2) {printf("输入错误,请输入有效的整数。\n");return 1; // 非正常退出}// 调用gcd函数计算最大公约数int result = gcd(num1, num2);// 显示结果printf("Greatest common divisor: %d\n", result);return 0;
}

输出

         ​​​​​​​        

第三题

 

示例代码

#include <stdio.h>// 定义一个函数来计算两个数的最大公约数
int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;
}int main() {int numerator, denominator;printf("Enter a fraction: ");if (scanf_s("%d/%d", &numerator, &denominator) != 2) {printf("输入错误,请输入有效的分数形式(分子/分母)。\n");return 1; // 非正常退出}// 计算最大公约数int commonDivisor = gcd(numerator, denominator);// 化简分数int simplifiedNumerator = numerator / commonDivisor;int simplifiedDenominator = denominator / commonDivisor;// 显示结果if (simplifiedDenominator == 1) {printf("In lowest terms: %d\n", simplifiedNumerator);}else {printf("In lowest terms: %d/%d\n", simplifiedNumerator, simplifiedDenominator);}return 0;
}

输出

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

第四题

5.2节broker.c代码如下

#include<stdio.h>int main()
{float commission, value;int num;printf("Enter value of trade: ");scanf_s("%f", &value);if (value < 2500.00f){commission = 30.00f + .017f * value;}else if (value < 6250.00f){commission = 56.00f + .0066f * value;}else if (value < 20000.00f){commission = 76.00f + .0034f * value;}else if (value < 50000.00f){commission = 100.00f + .0022f * value;}else if (value < 500000.00f){commission = 155.00f + .0011f * value;}else{commission = 255.00f + .0009f * value;}if (commission < 39.00f){commission = 39.00f;}printf("Commission: $%.2f\n", commission);return 0;
}

题目分析:这个结合本篇第一题的解法,加入while循环,循环条件为真,当判断输入为0时跳出循环即可,不难给出代码。

示例代码

#include<stdio.h>int main()
{float commission, value;while (1){printf("Enter value of trade: ");if (scanf_s("%f", &value) != 1) {printf("输入错误,请输入有效的交易金额。\n");continue; // 继续下一次循环}if (value!=0){if (value < 2500.00f){commission = 30.00f + .017f * value;}else if (value < 6250.00f){commission = 56.00f + .0066f * value;}else if (value < 20000.00f){commission = 76.00f + .0034f * value;}else if (value < 50000.00f){commission = 100.00f + .0022f * value;}else if (value < 500000.00f){commission = 155.00f + .0011f * value;}else{commission = 255.00f + .0009f * value;}if (commission < 39.00f){commission = 39.00f;}printf("Commission: $%.2f\n\n", commission);}else break;}return 0;
}

输出

                                 

第五题

示例代码

#include <stdio.h>int main() {long number;long reversed = 0;int digit;printf("请输入一个整数:");if (scanf_s("%ld", &number) != 1) {printf("输入错误,请输入有效的整数。\n");return 1; // 非正常退出}// 处理负数long originalNumber = number;if (number < 0) {number = -number;}do {digit = number % 10; // 获取当前的最低位reversed = reversed * 10 + digit; // 将数字添加到结果中number /= 10; // 去掉最低位} while (number != 0);// 如果原始输入是负数,反转的结果也应该带上负号if (originalNumber < 0) {reversed = -reversed;}printf("逆序后的数字是:%ld\n", reversed);return 0;
}

输出

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

第六题 

示例代码

#include <stdio.h>int main() {int n;int i;printf("Enter a integer:");if (scanf_s("%d", &n) != 1) {printf("输入错误,请输入有效的整数。\n");return 1; // 非正常退出}// 检查 n 是否大于等于 4,因为 2 是最小的偶数,2^2=4if (n < 4) {printf("n 至少应该是 4 或更大。\n");return 1; // 非正常退出}// 使用 for 循环从 2 到 n 步长为 2 (只取偶数)for (i = 2; i * i <= n; i += 2) {// 计算平方并输出int square = i * i;printf("%d 的平方是 %d\n", i, square);}return 0;
}

输出

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​         

 


http://www.ppmy.cn/news/1542423.html

相关文章

cursor - 地表最强AI编辑器,到底如何用?

cursor - 最强AI编辑器&#xff0c;到底如何使用&#xff1f; 阅读时长&#xff1a;15分钟 本文内容&#xff1a; cursor有哪些特点&#xff1f;如何科学的使用cursor编辑器&#xff1f; 介绍&#xff1a;cursor是一款AI编辑器&#xff0c;它有着独特的全局Context&#xff0c;…

分组排序函数、dense_rank() 函数的使用、MySQL之dense_rank()、Hive之dense_rank()函数

文章目录 一、dense_rank() 函数二、使用案例2.1、按成绩进行排名2.2、获取排名前五的数据2.3、分组后再排名 三、总结3.1、row_number()、rank() 和 dense_rank() 的区别 DENSE_RANK()是一种窗口函数&#xff0c;用于在数据库中计算密集等级。它为每个行分配一个密集等级&…

怎么用c++的fill函数?

功能描述&#xff1a; 向容器中填充指定的元素 函数原型&#xff1a;fill(iterator beg, iterator end, value); // 向容器中填充元素 // beg 开始迭代器 // end 结束迭代器 // value 填充的值 示例&#xff1a; #include <numeric> #include <vector> #inclu…

用Spring Boot实现的在线厨艺学习平台

1 绪论 1.1 研究背景 现在大家正处于互联网加的时代&#xff0c;这个时代它就是一个信息内容无比丰富&#xff0c;信息处理与管理变得越加高效的网络化的时代&#xff0c;这个时代让大家的生活不仅变得更加地便利化&#xff0c;也让时间变得更加地宝贵化&#xff0c;因为每天的…

从 Web2 到 Web3:区块链技术的演进与未来趋势

在互联网的发展历程中&#xff0c;我们正经历着从 Web2 向 Web3 的重大转变。这个转变的核心驱动力之一&#xff0c;便是区块链技术的不断演进。 Web2 时代&#xff0c;互联网上的社交媒体、在线购物、视频分享等平台蓬勃发展。用户可以便捷地获取信息、与他人交流互动&#x…

uniapp-components(封装组件)

<myitem></myitem> 在其他类里面这样调用。

AI Infra 如何打造?云轴科技ZStack在中国CID大会上主题演讲

10月19日&#xff0c;2024年“中国云计算基础架构开发者大会&#xff08;China Cloud Computing Infrastructure Developer Conference - 简称CID&#xff09;”在北京举办。大会聚集业界最前沿的云计算基础架构技术成果&#xff0c;覆盖主论坛与四大技术主题分论坛&#xff0c…

No.19 笔记 | WEB安全 - 任意文件操作详解 part 1

1. 任意文件上传漏洞基础 什么是文件上传功能? 在网站和应用中,我们经常会看到允许用户上传文件的功能,比如: 更换头像:让用户上传自己的照片作为头像发布图片:在社交媒体或论坛上传图片提交文档:在办公系统中上传Word、Excel等文档 这些都是常见的文件上传功能。 任意文…