C语言程序设计:对任意给定的4位整数,每一位数字均加2,若某位数字加2后大于9,

则取其除以10的余数,如数据6987加密后的数据位8109.

#include<stdio.h>
void main()
{ int x,y,z,i,k;
printf("请输入一个4位数:"); scanf("%d",&x);
for ( i=0,y=0,k=1000;i<4;i++ ) //从最高位开始逐位计算
{ z=x/k; z%=10; //取得当前位
z+=2; z%=10; //如果z加2后小于等于9则z%=10后值不变
z*=k; y+=z; //保存加密后的位
k/=10; //降1位
}
printf("%d加密后的数据为%d\n",x,y);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-31

#include<stdio.h>
int main()
{
int a[4];
printf("请输入四个数:");
for(int i=0,t=0;i!+4;i++)
{scanf("%d",t);
if((t+2)>9)
t%=10;
else
t+=2;
a[i]=t;
}
printf("转换结果为:");
for(int i=0;i!=4;i++)
{printf("%d",a[i]);
}
printf("\n");
return 0;
}

第2个回答  2013-10-31
#include <stdio.h>

int main()
{
    int n;
    while(scanf("%d", &n) != EOF)
    {
        int num[4],tmp=1,res=0;
        for(int i=0;i<4;i++)
        {
            num[i] = (n/tmp+2)%10;
            res+=num[i]*tmp;
            tmp*=10;
        }
        printf("%d\n", res);
    }
    return 0;
}