标题:关于三级网络的上机问题请教
只看楼主
jiangezi
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-2-27
结帖率:0
 问题点数:0 回复次数:3 
关于三级网络的上机问题请教
文件IN.DAT中存有一篇英文文章,函数readData()负责将IN.DAT中的数据读到数组inBuf[]中。请编制函数replaceChar(),该函数的功能是按照指定规则对字符进行替换。变换后的值仍存入数组inBuf[]中。函数writeData()负责将inBuf[]中的数据输出到文件OUT.DAT中,并且在屏幕上输出。
替换规则为:先对字符的ASCII码值按公式y=a*11 mod 256进行运算(a为某一字符的ASCII码值,y为变换后的ASCII码值),如果原字符的ASCII码值是偶数或计算后y的值小于等于32,则字符保持不变,否则用y对应的字体代替。
我编的:如下
void replaceChar()
{
    int i,j,str;
    char y;

    for(i=0;i<totleLine;i++)
    {
        str=strlen(inBuf[i]);
        for(j=0;j<str;j++)
        {
        
            if(inBuf[i][j]*11%256<=32||inBuf[i][j]%2==0) continue;
            else inBuf[i][j]=inBuf[i][j]*11%256;    //按照件来转换
        }
    }
   
}
答案:void replaceChar()
{
int i,j,str;
char y;
for(i=0;i<totleLine;i++)/*以行为单位获取字符*/
{
str=strlen(inBuf[i]);/*求当前行字符串的长度*/
for(j=0;j<str;j++)/*依次取每行的各字符*/
{
y=inBuf[i][j]*11%256;/*按照指定的规则求出y*/
if(y<=32‖inBuf[i][j]%2==0)
continue;
else
inBuf[i][j]=y;/*按要求转换*/
}
}

}                运行与答案的不同,错在哪里啊
搜索更多相关主题的帖子: 上机 网络 
2010-03-29 08:45
mikelr
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:161
注 册:2010-3-17
得分:0 
不同之处,就是答案的这一句。
y=inBuf[i][j]*11%256;/*按照指定的规则求出y*/

y是char 型,取值范围为: -128 ~ 127
2010-03-29 09:39
jiangezi
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-2-27
得分:0 
仍然不明,,,,关键是我的错在哪里?、???
2010-03-29 19:41
llooppzhang
Rank: 7Rank: 7Rank: 7
来 自:江苏
等 级:黑侠
威 望:5
帖 子:308
专家分:518
注 册:2009-10-18
得分:0 
好像没错啊?
2010-03-30 17:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-300851-1-1.html




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

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