| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 679 人关注过本帖
标题:[求助]重发
只看楼主 加入收藏
yl82765023
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-9-4
收藏
 问题点数:0 回复次数:7 
[求助]重发

上一篇发的大家都说我交代的不清楚
现在我重新发一贴吧. 我就直接把书上的语言搬过来了
题目:
某个公司采用公用电话传递数据信息,数据是小于8位的整数.为了确保安全,在传递过程中需要加密.加密规则如下:
首先将数据倒序,然后将每位数字都加上5,再用和除以10代替该数字,最后将第一位数和最后一位数字交换.
要求通过程序实现数据加密的过程.

问题分析:
●为了对数据的每一位数字进行操作,首先需要将数据不同位的数字拆分出来,将拆分后的数字保存在数组中,在拆分过程中完成倒序.
●对数组中的元素应用加密规则:将每个元素加上5,再除以10取余.
●将数组的第一位和最后一位数字交换
●输出加密后的数据信息
PS:再看不懂我要跳楼了我可是按书上的敲下来的```连标点都没漏

下面是我自己写的〖有问题代码〗别被我误导了``我就是发出来给你们看看我哪里错了.
麻烦高手们把正确的答案回复一下
#include<stdio.h>
void main()
{
int a,b;
int f[6],i,t;
a=0;
printf("\n请输入一个数");
scanf("%d",&a);
while(a!=0)
{
b=(a+5)%10;
for(i=0;i<7;i++)
{
f[i]=b;
t=f[0];
f[0]=f[6];
f[6]=t;
}
a=a/10;
}
for(i=0;i<7;i++)
printf("\n加密后的数组为:%d",f[i]);
printf("\n");
}
补充: 书上的打印结果是: 请输入原数组:
4567583
加密后的数组:
9302108

搜索更多相关主题的帖子: 公用电话 数据加密 贴吧 
2007-09-04 16:55
B2Mouse
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-9-4
收藏
得分:0 
谁有答案别忘了贴出来,在线等啊。

2007-09-04 17:03
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
明显书是错的




by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]
2007-09-04 17:27
zzxwill
Rank: 1
等 级:新手上路
帖 子:398
专家分:0
注 册:2007-8-15
收藏
得分:0 

同意飞燕~~
#include<stdio.h>
void main()
{
int a,b;
int f[6],i,j,t;
i=t=0;
printf("\n请输入一个数");
scanf("%d",&a);
do{
f[i]=(a+5)%10;

a=a/10;
i++;
}while(a!=0);
t=f[i-1];
f[i-1]=f[0];
f[0]=t;

for(j=i-1;j>=0;j--)
printf("\n加密后的数组为:%d",f[j]);
printf("\n");
}


一分耕耘,一分收获。
2007-09-04 17:58
yl82765023
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-9-4
收藏
得分:0 
ZZ你的答案错的呀```
2007-09-04 17:59
blackkey
Rank: 1
等 级:新手上路
帖 子:159
专家分:0
注 册:2005-6-8
收藏
得分:0 

题目没错~~

#include <stdio.h>
#include <string.h>


int main()
{
int iLen, i, iCal ;
long iInput ;
char chTmp[20],chStr[20] ;
char cTmp ;

memset(chTmp,0x00,sizeof(chTmp)) ;
memset(chStr,0x00,sizeof(chStr)) ;

scanf("%d",&iInput) ;

iLen = strlen(chTmp) ;

if ( iLen < 6 )
{
printf("must > 6 bit! ") ;
}
// 数组内容颠倒
for( i=0; i< strlen(chTmp);i++)
{
chStr[i] = chTmp[iLen-1] ;
iLen-- ;
}
chStr[strlen(chTmp)] = '\0' ;
iLen = strlen(chStr) ;

//加密运算
for(i=0;i<iLen;i++)
{
iCal = chStr[i] ;
iCal = iCal -48 +5 ;
iCal = iCal%10 ;
chStr[i] = iCal + 48 ;
}

//头尾颠倒
cTmp = chStr[0] ;
chStr[0] = chStr[iLen-1] ;
chStr[iLen-1] = cTmp ;

//打印结果
printf("chStr = %s\n%",chStr) ;

return 0 ;
}


2007-09-04 18:17
blackkey
Rank: 1
等 级:新手上路
帖 子:159
专家分:0
注 册:2005-6-8
收藏
得分:0 

比较急~所以程序没有优化~~

多多包含~~


2007-09-04 18:18
cyhbp
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-8-27
收藏
得分:0 

#include <stdio.h>
#include <stdlib.h>
void main()
{
int i,k;
char f[10]={0},j; /* f[0]到f[9] */
printf("请输入一个数:");
scanf("%s",&f);
k=strlen(f);
for (i=0;i<k;i++)
f[i]=(f[i]-48+5)%10+48; /*看了打印结果才知道是这样算*/


j=f[i-1]; /*头尾交换*/
f[i-1]=f[0];
f[0]=j;

strrev(f); /*全倒序,如 123456=>654321 */

printf("加密后的数组为:");
for(i=0;i<k;i++)
printf("%c",f[i]);
getch();

}


2007-09-04 19:46
快速回复:[求助]重发
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021379 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved