2023-12-12 00:39来源:m.sf1369.com作者:宇宇
1、如果数据不是很大(文档不是很大)的话,采用结构体保存文档中的数据。
2、如果数据量很大(内存无法一次性装下),可以将文件划分成小文件,
你程序的错有三:
1、判断下界应该是x+d[i][0]>=0 && y+d[i][1]>=0。
2、循环体内,不能直接改变x,y的值,因为x,y为该层起点。
例如:x=0,y=0时。执行该层循环第一次后,x=1,y=0,递归回来后,起点就改变了。
3、b不应为全局变量,应该作为参数在函数dfs中传递。
按照你的程序:b不到10是不会做b--的。又因为b是全局变量所以,所有层的步数都变成了9
下面给出我的代码吧!^______^
#include<stdio.h>
#include<stdlib.h>
int count=0,d[4][2]={{1,0},{0,-1},{-1,0},{0,1}};
void dfs(int x,int y,int b)
{
int i;
if(b==10)
{
if (x==2 && y==2) count++;
return;
}
for(i=0;i<4;i++)
if(x+d[i][0]<3 && y+d[i][1]<3 && x+d[i][0]>=0 && y+d[i][1]>=0)
dfs(x+d[i][0],y+d[i][1],b+1);
}
int main()
{
dfs(0,0,0);
printf(%d\n,count);
return 0;
}
输出20。
printf(%d\n,(a=3*5,a*4,a+5)); 这里的%d是逗号表达式的值。
逗号表达式按顺序执行,首先a=3*5,这时a=15,
然后是a*4,注意这时a的值没有变化(必须是a = a*4才会变),
最后是a+5,这时a的值也没有变化。而这个同时是逗号表达式中的最后一个表达式。
逗号表达式的值总是等于最后一个表达式的值。因此%d=a+5。
显示的内容就是15 + 5 = 20了。
u=010中,u是8进制数8
v=0x10,v是16进制数16
w=10;w是10进制数10
输出都是10进制形式输出的,所以把u,v换成10进制数就行了。。