函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS6.DAT中。
替代关系:f(p)=p*11 mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或f(p)对应的字符是数字0至9,则该字符不变,否则将f(p)所对应的字符进行替代。
部分源程序已给出。原始数据文件存放的格式是:每行的宽度均小于80个字符。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<ctype.h>
编程这题怎么解?
答案:1 悬赏:70 手机版
解决时间 2021-05-22 05:18
- 提问者网友:记得曾经
- 2021-05-21 14:58
最佳答案
- 五星知识达人网友:狂恋
- 2021-05-21 16:17
只是它要求对f(p)进行判断。
void encryptchar()
{
int i;
char *pf;
for(i=0;i<maxline;i++)
{pf=xx[i];
while(*pf!=0)
{if((*pf*11%256>='0'&&*pf*11%256<='9')||*pf*11%256<32)
{pf++;continue;}
*pf=*pf*11%256;
pf++;
}
}
}
void encryptChar()
{
int i,j,strl;
int t;
for (i=0;i<maxline;i++)
{
strl=strlen(xx[i]);
for(j=0;j<strl;j++)
{
t=xx[i][j]*11%256;
if (t<=32 || (t>='0' && t<= '9')) continue;
xx[i][j]=t;
}
}
} 太简单了 哥们!!!
void encryptchar()
{
int i;
char *pf;
for(i=0;i<maxline;i++)
{pf=xx[i];
while(*pf!=0)
{if((*pf*11%256>='0'&&*pf*11%256<='9')||*pf*11%256<32)
{pf++;continue;}
*pf=*pf*11%256;
pf++;
}
}
}
_________________________________
只是为了上机能通过,不追求什么算法速度,答案仅供大家参考.
void encryptChar()
{
int i,j,strl;
int t;
for (i=0;i<maxline;i++)
{
strl=strlen(xx[i]);
for(j=0;j<strl;j++)
{
t=xx[i][j]*11%256;
if (t<=32 || (t>='0' && t<= '9')) continue;
xx[i][j]=t;
}
}
} 太简单了 哥们!!!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯