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

第一题

示例代码:

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

int main()
{
	printf("Enter a two-digit number: ");
	int number,ten_n,g_n;
	scanf_s("%d", &number);
	ten_n = number / 10;
	g_n = number % 10;
	printf("The reversal is %d%d", g_n, ten_n);
	return 0;
}

输出:

​​​​​​​

第二题

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

解题思路:这道题的解题思路有很多,一种思路就是分别求出每个位上的数字,然后排序输出,不难给出代码。

示例代码:

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

int main()
{
	printf("Enter a two-digit number: ");
	int number, hund_n, ten_n, g_n;
	scanf_s("%d", &number);
	hund_n = number / 100;
	ten_n = (number-hund_n*100) / 10;
	g_n = (number-hund_n*100) % 10;
	//g_n = number-hund_n*100-ten_n*10;
	printf("The reversal is %d%d%d", g_n, ten_n, hund_n);
	return 0;
}

输出

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

第三题

解题思路:%1d代表一位整数,所以输入的数字是按照个数组合起来的,而不是眼睛看起来通常意义上的几百,如此可以解答。

示例代码:

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

int main()
{
	printf("Enter a two-digit number: ");
	int  hund_n, ten_n, g_n;
	scanf_s("%1d", &hund_n);
	scanf_s("%1d", &ten_n);
	scanf_s("%1d", &g_n);
	
	//g_n = number-hund_n*100-ten_n*10;
	printf("The reversal is %d%d%d", g_n, ten_n, hund_n);
	return 0;
}

输出

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

第四题

解题思路:根据题中提示,需要用累除连续除4次8,然后将余数排列出来即可。

示例代码

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

int main()
{
	printf("Enter a number betweeen 0 and 32767: ");
	int number;
	scanf_s("%d", &number);
	int a, b, c, d, e;
	int temp_y, temp_r;
	temp_y = number % 8;
	a = temp_y;

	temp_r = number / 8;
	b = temp_r % 8;

	temp_r = temp_r / 8;
	c = temp_r % 8;

	temp_r = temp_r / 8;
	d = temp_r % 8;

	temp_r = temp_r / 8;
	e = temp_r % 8;
	printf("%d%d%d%d%d", e, d, c, b, a);
	return 0;
}

输出

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

第五题

题目分析:这个题不难,关键在于审题,计算规则要看清楚,别搞错了。

示例代码

cpp 复制代码
#include<stdio.h>
int main()
{
	int b, a1, a2, a3, a4, a5, b1, b2, b3, b4, b5;
	printf("Enter the first 11 digits of UPC: ");
	scanf_s("%1d%1d%1d%1d%1d%1d%1d%1d%1d%1d%1d",&b, &a1, &a2, &a3, &a4, &a5, &b1, &b2, &b3, &b4, &b5);
	int result;
	int first_sum,second_sum, total;
	first_sum = b + a2 + a4 + b1 + b3 + b5;
	second_sum = a1 + a3 + a5 + b2 + b4;
	total = 3 * first_sum + second_sum;
	result = 9 - (total - 1) % 10;
	printf("Check digit: %d", result);
	return 0;
}

输出

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

第六题

题目分析:这种长臭的题,耐心看,提取出有用信息转换为代码语言。

示例代码

cpp 复制代码
#include<stdio.h>
int main()
{
	int a1, a2, a3, a4, a5,a6, b1, b2, b3, b4, b5, b6;
	printf("Enter the first 11 digits of UPC: ");
	scanf_s("%1d%1d%1d%1d%1d%1d%1d%1d%1d%1d%1d%d", &a1, &a2, &a3, &a4, &a5,&a6, &b1, &b2, &b3, &b4, &b5,&b6);
	int result;
	int first_sum, second_sum, total;
	first_sum = a6 + a2 + a4 + b2 + b4 + b6;
	second_sum = a1 + a3 + a5 + b1 + b3+b5;
	total = 3 * first_sum + second_sum;
	result = 9 - (total - 1) % 10;
	printf("Check digit: %d", result);
	return 0;
}

输出

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

相关推荐
CoderYanger3 小时前
动态规划算法-两个数组的dp(含字符串数组):42.不相交的线
java·算法·leetcode·动态规划·1024程序员节
CoderYanger9 小时前
动态规划算法-两个数组的dp(含字符串数组):43.不同的子序列
java·算法·leetcode·动态规划·1024程序员节
CoderYanger12 小时前
动态规划算法-两个数组的dp(含字符串数组):41.最长公共子序列(模板)
java·算法·leetcode·动态规划·1024程序员节
CoderYanger1 天前
动态规划算法-子序列问题(数组中不连续的一段):28.摆动序列
java·算法·leetcode·动态规划·1024程序员节
CoderYanger1 天前
动态规划算法-子序列问题(数组中不连续的一段):30.最长数对链
java·算法·leetcode·动态规划·1024程序员节
CoderYanger1 天前
C.滑动窗口——2762. 不间断子数组
java·开发语言·数据结构·算法·leetcode·1024程序员节
智者知已应修善业2 天前
【输入两个数字,判断两数相乘是否等于各自逆序数相乘】2023-10-24
c语言·c++·经验分享·笔记·算法·1024程序员节
CoderYanger2 天前
动态规划算法-子数组、子串系列(数组中连续的一段):21.乘积最大子数组
开发语言·算法·leetcode·职场和发展·动态规划·1024程序员节
CoderYanger2 天前
A.每日一题——3432. 统计元素和差值为偶数的分区方案
java·数据结构·算法·leetcode·1024程序员节
CoderYanger2 天前
动态规划算法-子数组、子串系列(数组中连续的一段):26.环绕字符串中唯一的子字符串
java·算法·leetcode·动态规划·1024程序员节