急急急 初始化数组赋值问题 求助!!!!!!程序有点长,但只需要看为何我的数组元素的值全是0

#include<stdio.h>#include<string.h>voidtraversal(floata[7][7],intvisit[7],intx,floats... #include <stdio.h>
#include <string.h>
void traversal(float a[7][7], int visit[7],int x,float store[7][7][1],int i,int j)
{
int k;
visit[x] = 1;
store[i][j][0] = store[i][j][0] + a[i][j];
printf("The node visited id %d\n",x);
if(x != j)
for(k=0; k<7; k++)
{
//printf("visit[k]=%d",visit[k]);
if( visit[k] == 0 && a[x][k] != 0)
{
// printf("%d++/n",k);
traversal(a,visit,k,store,i,j);
}
}
}
int main(void)
{
float a[7][7] = //将题目给出的图,存储在计算机中
{
{ 0, 3, 0, 0, 0, 0, 0},
{ 3, 0, 2, 0, 0,1.5, 0},
{ 0, 2, 0, 4, 6,2.5, 0},
{ 0, 0, 4, 0, 3,1.8, 0},
{ 0, 0, 6, 3, 0, 0,1.5},
{ 0,1.5,2.5,1.8, 0, 0, 0},
{ 0, 0, 0, 0, 0,1.5, 0}
};

float store[7][7][1] = {0}; //分别记录七个点其余每个点是否拜访,以及进过路程
int visit[7] = {0};

int i=0,j,k;
for(i=0; i<7; i++) //循环依次计算7个居民点
for(j=0; j<7; j++) //循环依次拜访其余六个居民点
{
memset(a,0,sizeof(a));
printf("从%d访问按通路访问%d\n",i,j);
printf("a[i][j]=%f\n",a[i][j]);

if(a[i][j] != 0) //观察给出图可知,任意两点间若能直接到达,其距离必定最短
{
printf("a[i][j]=%f\n",a[i][j]);
store[i][j][0] = store[i][j][0] + a[i][j];
}
if(a[i][j] == 0 && visit[i]==0)
traversal(a,visit,i,store,i,j);
printf("store[i][j][0]=%f\n",store[i][j][0]);

}
return 0;
}
a[7][7]数组内的元素为0
展开
 我来答
kaixingui2012
推荐于2016-02-19 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6444万
展开全部
memset(a,0,sizeof(a)); 这里把数组的每个元素都置成0了!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式