有趣的代码——有故事背景的程序设计1

前面讲了两个小游戏的代码实现,相信大家能够从中感受到属于编程的独特乐趣,激发对编程学习的兴趣。这篇文章和大家分享一些有故事背景的程序设计,并不是很难,但个人感觉能够帮助大家培养将实际问题和程序联系起来的能力,总而言之,希望对于大家能有所帮助。

目录

1.通用产品代码

 2.判断闰年

 3.赛车评论

4.整数的逆值

 5.水仙花数

6.某年某月有多少天

7.欧几里得算法


1.通用产品代码

通用产品代码(Universal Product Code,UPC)是将指商品条形码下方的数字,每个UPC表示为一个12位的数,可以扫描商品的UPC条形码来获得该商品的生产商等信息。UPC的最后一位是校验位,用来校验条形码扫描的结果是否正确。假设计算校验位的步骤如下:

①将奇数位的数字相加

②将偶数位的数字相加

③将步骤①的结果乘以3再减去步骤②的结果

④将步骤③的结果除以10取余数

从键盘输入一个11位数字,用上述方法计算校验位,生成12位的UPC并输出。

大家看到这个题目挺长的,但是读清楚题目后就会发现所谓的“UPC”仅是出题人的小把戏,而该题的核心就是通过上面的计算校验位步骤计算出校验位,再将校验位和前11位数据一同输出即可。

算法实现如下:

1.输入11位数,将这11位数的每一位数字都存储到一个变量中

2.通过变量之间的运算将奇数位的数据相加

3.通过变量之间的运算将偶数位的数据相加

4.根据题干信息求步骤③④的结果,结果即为校验码,同时也是UPC的第十二位数字

5.依次输出十二位数字

代码实现如下:

#include<stdio.h>
int main()
{
	int arr[12]={0};
	int sum1,sum2,i=0;
	printf("请依次输入UPC码的每一位数字,并用空格进行分隔:\n");
	for(i=0;i<11;i++)
	{
		scanf("%d",&arr[i]);
	} 
	sum1=arr[0]+arr[2]+arr[4]+arr[6]+arr[8]+arr[10];
	sum2=arr[1]+arr[3]+arr[5]+arr[7]+arr[9];
	arr[11] = (sum1*3-sum2)%10;
	printf("校验码是%d\n",arr[11]);
	printf("UPC码是");
	for(i=0;i<12;i++)
	{
		printf("%d",arr[i]);
	}  
	return 0;
}
 2.判断闰年

对于给定的年份,判断该年是否是闰年。

这题的题干是很短的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值