带注释 实验7-1-9 数字加密 (15分)

实验7-1-9 数字加密 (15分)
输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。例如输入1257,经过加9取余后得到新数字0146,再经过两次换位后得到4601。

输入格式:
输入在一行中给出一个四位的整数x,即要求被加密的数。

输出格式:
在一行中按照格式“The encrypted number is V”输出加密后得到的新数V。

输入样例:

1257

输出样例:

The encrypted number is 4601

#include<stdio.h>
#include <math.h>
int main()
{	int n,i,j,k,g;
	char a[5];
	//题目出得很狡猾,输入居然有前导0 
	//我觉得我们做题时的思路应当全面 
	for (i = 0;i < 4;i++){
		scanf ("%c",&a[i]);
		if (i == 3) a[4]='0';
	}
	{a;
	}
	//为对付前导0 我选择以字符串形式输入 
	int b[5];
	printf ("The encrypted number is ");
	for (i = 0;i < 4;i++){
		a[i]-=1;
		if (a[i] < '0') a[i]=a[i]+10;
		//上面实质上是ASII码的序号的变化
		//加9取余就是往前进一位,9变8,0变9 
		//如果题目是加8取余那就可以变成
		/* a[i]-=2;//进2位 
		if (a[i] < '0') a[i]=a[i]+10;*/ 
		//掌握这种转化也算技多不压身嘛 
	}
	printf ("%c%c%c%c",a[2],a[3],a[0],a[1]);
	return 0;
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值