请大家帮忙挑挑错,看看怎么改。。。
这是我写的一段程序,其中有个函数没有发挥作用,不知道怎么改,请帮忙看看,谢谢!#include <string.h>
#include <stdio.h>
#define U 1000
#define M 2
#define N 2
void fun (int i,int *x1,int*x);//选择语句的判断
void SaveBuff(int *c);//存储数据
void dx(int *b,int j);//读取数据
void CircleShift(int *buffer,int *d,int n);//循环右移
void main()
{
int x1[4];
int x[4];
int i,j;
for(j=0; j<16; j++)
{
dx(x,j);
CircleShift(x,x1,1);
dx(x,j);
i=memcmp(x1,x,sizeof(x1));//比较大小
fun(i,x1,x);
}
}
void fun (int i,int *x1,int*x)
{
if(i<=0)
{
if(memcmp(x1,x,sizeof(x1))==0)
//这方面也有问题,这里想判断循环右移是不是循环了都进行了一遍,是则执行,不是执行else
{SaveBuff(x);}
else
{
CircleShift(x1,x1,1);
i=memcmp(x1,x,sizeof(x1));
fun(i,x1,x);//问题在这,不能做到自身的调用
}
}
else return;
}
void dx(int *b,int j)
{
int n;
FILE *fp;
char s[U];
char* arr = new char[strlen(s)]; //字符串数组
fp=fopen("result.txt","r");
fgets(s,U,fp);
n=strlen(s);
fseek(fp,(n+1)*j,SEEK_SET);/*将文件指针移到下一行*/
fgets(s,U,fp);
for(int i=0; i<n-1; i++)
{ arr[i] =s[i]-'0';
b[i]=(int)arr[i];
printf("%d",b[i]);}
printf("\n");
}
void CircleShift(int *buffer,int *d,int n)
{
int i,j,tt;
int len=sizeof(buffer);
for(i=0;i<n;i++)
{ tt = buffer[len-1];
for(j=len-1;j>0;j--)
buffer[j] = buffer[j-1];
buffer[0] = tt;
}
for(i=0;i<len;i++)
{ d[i]=buffer[i];
printf("%d",d[i]);}
printf("\n");
}
void SaveBuff(int *c)
{
FILE *fp = fopen("file.txt", "a+");
for(int u=0; u<M*N; u++)
{
fprintf(fp, "%d", c[u]);
}
fprintf(fp, "\n");
fclose(fp);
}
sult.txt文件的数据是:
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
请会的帮忙看看,谢谢了!