300327中颖电子股吧:C程序高手请近来帮小菜看看啊!

来源:百度文库 编辑:杭州交通信息网 时间:2024/03/28 18:52:29
某个公司采用公用电话传递数据信息,数据是小于8位的整数.为了确保安全,在传递过程中需要加密.加密规则如下:
首先将数据倒序,然后将每位数字加上5,再用和除以10的余数代替该数字,最后将第一位和最后一位数字交换.要求通过实现数据加密的过程.
<这个程序该怎么改,我希望能简单化,用VC++改过来!
注:(只用#include<stdio.h>的头文件写出来!运用1.变量和数据类型 2.运算符 3.循环结构 4.数组)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char str[8]={'\x0'};
int i,j,temp;
short memo[32];
long word;
printf("Please input the digital information:");
gets(str);
word=atol(str);

i=0;
while(word>0)
{
memo[i++]=word%10;
word/=10;
}

for(j=0;j<i;j++)
{
memo[j]+=5;
memo[j]%=10;
}

temp=memo[0];
memo[0]=memo[i-1];
memo[i-1]=temp;

j=0;
while(j<i)
{
str[j++]=memo[j]+48;
}
str[j]='\0';

puts(str);
getch();
}

信息是小于8位的数对吗?就是处理这个小于8位的数
首先用getchar读入每个字符存到一个数组里,然后用一个for对数组里的每个数进行你所说的运算处理(for里的初值设置最大,范围大于等于0,处理倒序),把处理后的数据存在第二个数组里,然后交换首末两个数并输出.
#include<stdio.h>
main()
{char c,a[8],b[8];
int i=0,temp=0,t=0;
while((c=getchar())!=EOF)
{
a[i++]=c;
}

t=i;(现在的i为最大值)

for(;i>=0;i--)
{
写出运算的过程,并把每个数的最终结果存入数组b[]
}

temp=b[0];
b[0]=b[t];
b[t]=temp;(交换)

然后一个for输出结果,数组b

}

如果我有理解错的地方请指出,我再修改.