前面讲了两个小游戏的代码实现,相信大家能够从中感受到属于编程的独特乐趣,激发对编程学习的兴趣。这篇文章和大家分享一些有故事背景的程序设计,并不是很难,但个人感觉能够帮助大家培养将实际问题和程序联系起来的能力,总而言之,希望对于大家能有所帮助。
目录
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.判断闰年
对于给定的年份,判断该年是否是闰年。
这题的题干是很短的