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

第一题

题目分析:程序判断一个数的位数可以通过循环除以10求余,通过计算第一次与10求余为0的次数计算位数,由此可得示例1代码,另一种思路根据提示,可得示例2代码。

代码示例1:

cpp 复制代码
#include<stdio.h>

int main()
{
	printf("Enter a number: ");
	int number,temp;
	scanf_s("%d", &number);
	temp = number;
	int digit = 0;
	while (temp % 10 != 0)
	{
		digit += 1;
		temp = temp / 10;
	};
	printf("The number %d has %d digits", number, digit);
	return 0;
}

输出:

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

代码示例2:

cpp 复制代码
#include<stdio.h>

int main()
{
	/*printf("Enter a number: ");
	int number,temp;
	scanf_s("%d", &number);
	temp = number;
	int digit = 0;
	while (temp % 10 != 0)
	{
		digit += 1;
		temp = temp / 10;
	};
	printf("The number %d has %d digits", number, digit);
	return 0;*/
	int number;
	printf("Enter a number: ");
	scanf_s("%d", &number);
	if (number >= 0 && number <= 9)
	{
		printf("The number %d has 1 digits", number);
	}
	else if (number >= 10 && number <= 99)
	{
		printf("The number %d has 2 digits", number);
	}
	else if (number >= 100 && number <= 999)
	{
		printf("The number %d has 3 digits", number);
	}
	else if (number >= 1000 && number <= 9999)
	{
		printf("The number %d has 4 digits", number);
	}
	else
	{
		printf("The number %d 输入位数多于4位", number);
	}
		return 0;
}

输出

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

第二题

题目分析:输入24进制小时制的时间,显示12小时的格式如果大于12时,减去12即可,如果小于12,原样显示,由此给出如下代码。

示例代码

cpp 复制代码
#include<stdio.h>

int main()
{
	printf("Enter a 24-hour time: ");
	int h, m;
	scanf_s("%d:%d", &h, &m);
	if (h>24)
	{
		printf("输入数据%d:%d不符合要求", h, m);
	}
	else if (h>12&&h<24)
	{
		printf("Equivalent 12-hour time: %d:%d PM", h - 12, m);
	}
	else if (h<0)
	{
		printf("输入数据%d:%d不符合要求", h, m);
	}
	else if (h==24)
	{
		printf("Equivalent 12-hour time: %d:%d AM", h - 24, m);
	}
	else
	{
		printf("Equivalent 12-hour time: %d:%d AM", h, m);
	}
	return 0;
}

输出

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

第三题

题目分析:这个题我的理解是基础33美元,然后每股加3美分或者2美分,将美分换算成美元进行计算,得到下列代码。

示例代码

cpp 复制代码
#include<stdio.h>

int main()
{
	float commission, value, per_price;
	int num;
	printf("Enter value of trade: ");
	scanf_s("%f%d", &per_price, &num);
	value = per_price * num;
	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);

	//竞争对手
	float j_money;
	if (num < 20000)
	{
		j_money = 33.00f + 3.00f*num/100.00f;
	}
	else
	{
		j_money = 33.00f + 2.00f*num/100.00f;
	}
	printf("j_money: $%.2f\n", j_money);
	return 0;
}

输出

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

第四题

题目分析:简单的数值范围判断问题

示例代码

cpp 复制代码
#include<stdio.h>

int main()
{
	float wind_speed;
	printf("Eter the wind speed: ");
	scanf_s("%f", &wind_speed);
	if (wind_speed<1)
	{
		printf("Calm(无风)");
	}
	else if (wind_speed>=1&&wind_speed<=3)
	{
		printf("Light air(轻风)");
	}
	else if (wind_speed>=4&&wind_speed<=27)
	{
		printf("Breeze(微风)");
	}
	else if (wind_speed>=28&&wind_speed<=47)
	{
		printf("Gale(大风)");
	}
	else if (wind_speed>=48&&wind_speed<=63)
	{
		printf("Strom(暴风)");
	}
	else if (wind_speed > 63)
	{
		printf("Hurricane(飓风)");
	}
	return 0;

}

输出

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

第五题

题目分析:这个题主要是注意有印刷错误。

示例代码

cpp 复制代码
#include<stdio.h>

int main()
{
	printf("输入收入:");
	float salary, tax;
	scanf_s("%f", &salary);
	if (salary<=750)
	{
		tax = salary * .01;
	}
	else if (salary<=2250)
	{
		tax = 7.5 + (salary - 750) * .02;
	}
	else if (salary<=3750)
	{
		tax = 37.5 + (salary - 2250) * .03;
	}
	else if (salary<=5250)
	{
		tax = 82.50 + (salary - 3750) * .04;
	}
	else if (salary<=7000)
	{
		tax = 142.50 + (salary - 5250) * .05;
	}
	else
	{
		tax = 230.00 + (salary - 7000) * .06;
	}
	printf("应该交税$%.2f", tax);
	return 0;
}

输出

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

相关推荐
浪子明X4 小时前
十六位账本怎样发现传输差错:Internet Checksum 生活类比
开发语言
小弥儿5 小时前
GitHub今日热榜 | 2026-09-15:AI 智能体与本地生成工具领跑
学习·开源
老当益壮梁奶奶5 小时前
51单片机DS18B20温度传感器详解:单总线时序与C51驱动实现
笔记·stm32·单片机·嵌入式硬件·51单片机
小叶肥辉6 小时前
LangChain链和LangGraph图的学习笔记【三】——分别用langchain_openai库和langchain_community库调用大模型
笔记·python·langchain
冬奇Lab6 小时前
一天一个开源项目(第219篇):Openship —— 自托管部署平台,把 Vercel 的体验搬到你自己的服务器上
开源·资讯
xiangyun617 小时前
【408数据结构 08】队列:循环队列判空判满,408年年考,一次讲清
c语言·开发语言·数据结构·c++·算法
xiangyun617 小时前
【408数据结构 06】双链表、循环链表、静态链表
c语言·开发语言·数据结构·c++·算法
可爱系程序猿7 小时前
WSD 打印机时好时坏:从发现服务、地址变化到 Standard TCP/IP 端口的迁移记录
网络·网络协议·tcp/ip·程序人生·电脑
从零开始的嵌入式之旅7 小时前
day44
arm开发·经验分享·笔记·嵌入式硬件
白远山9 小时前
家政服务家政社区派单实战:调度系统架构设计与实现指南
java·开发语言·小程序·架构·需求分析