下面两部分的c程序中哪个是对的(/* */为一种答案共两种 如果都不对希望给出正确的答案)

来源:百度知道 编辑:UC知道 时间:2024/06/18 16:33:11
函数ReadDat()实现从文件eng.in中读取一篇英文文章存入到字符串数组XX中;请编制函数ShA(),其函数功能是:以行为单位把字符串中的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个新字符,第二个字符的ASCII值加第三个字符的ASCII值,得到第二个新字符,依此类推一直处理到最后第二个字符,最后一个字符的ASCII值加原第一个字符的ASCII值,得到最后一个新的字符,得到的新字符分别存放在原字符串对应的位置上。最后把已处理的字符串逆转后按行重新存入字符串数组XX中,最后调用函数WriteDat()把结果XX输出到文件OUT9.DAT中.
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格.
#include<stdio.h>
#include<string.h>
#include<conio.h>
char xx[50][50];
int maxline=0;

int ReadDat(void);
void WriteDat(void);

void ShA(void)
{
/* int i,j,a,b;
int ch[50][50];
for(i=0,a=49;i<maxline,a>=0;i++,a--)
for(j=0,b=49;xx[i][j],ch[a][b];j++,b--)
{
ch[a][b]=xx[i][j]+xx[i][j+1];
ch[a][0]=xx[i][0]+xx[i][49];
xx[i][j]=ch[a][b];
} */
/* int i,j;
char t1;
for(i=0;i<maxline;i++)
{
t1=xx[i][0];
for(j=0;xx[i][j+1]!='\0';j++)
xx[i][j]=xx[i][j]+xx[i][j+1];
xx[i][j]

把上面的想法跟下面的想法合在一起就是答案了
int i,j;
char t1;
int ch[80];
for(i=0;i<maxline;i++)
{
t1=xx[i][0];
for(j=0;xx[i][j+1]!='\0';j++)
ch[j]=xx[i][j]+xx[i][j+1];
ch[j]=xx[i][j]+t1;
for( a = 0 ; j >= 0 ; j-- , a++ )
xx[i][a] = ch[j] ;
}