该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
xx[i][j]=xx[i][j]>>4+xx[i][j-1];
和xx[i][j]=xx[i][j]/16+xx[i][j-1];
这两句结果不是一样的么,怎么放在同一个程序中得到不同的结果?
附源程序#include
#include
#include
#include
char xx[50][80];
int maxline=0;
int ReadDat();
void WriteDat();
void CharConvA(void)
{
int i,j,k,str;
char ch;
for(i=0;i
{
str=strlen(xx[i]);
ch=xx[i][str-1];
for(j=str-1;j>0;j--)
xx[i][j]=xx[i][j]>>4+xx[i][j-1]; //这个地方不懂
xx[i][0]+=ch;
}
}
void main()
{
system("cls");
if (ReadDat())
{ printf("数据文件IN88.DAT不能打开!\n\007"); return; }
CharConvA();
WriteDat();
}
int ReadDat(void)
{
FILE *fp;
int i=0;
char *p;
if((fp=fopen("IN88.DAT","r"))==NULL) return 1;
while (fgets(xx[i],80,fp)!=NULL)
{
p=strchr(xx[i],'\n');
if (p) *p=0;
i++;
}
maxline=i;
fclose(fp);
return 0;
}
void WriteDat()
{
FILE *fp;
int i;
system("cls");
fp=fopen("OUT88.DAT","w");
for(i=0;i
{ printf("%s\n",xx[i]); fprintf(fp,"%s\n",xx[i]); }
fclose(fp);
}