| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 493 人关注过本帖
标题:for语句嵌套多个if语句,不能完全执行
只看楼主 加入收藏
shenlan4939
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-3-10
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
for语句嵌套多个if语句,不能完全执行
for(i=0;i<n;i++)  
    {
     for(j=0;j<n;j++)
        {if (path[i][j]!=i)  
           {
              i1=path[i][j];
              printf("%d %d %d\n",i,i1,j);
              x[i1][j]=x[i1][j]+b[i][j];
           }
              printf("%d\n",i1);
          loop:if (path[i][i1]!=i)                 
           {i11=path[i][i1];
            x[i11][i1]=x[i11][i1]+b[i][j];
            i1=path[i][i11];goto loop;
           }
          // printf("%d",path[i][i1]);
          if(path[i][j]==i)
           {
            x[i][j]=x[i][j]+b[i][j];
           }
             printf("%d %d/n",i,j);
     }
     }
这个只能执行第一个if,然后系统会报错,请帮忙看看该怎么改,谢谢。

[ 本帖最后由 shenlan4939 于 2014-3-12 10:58 编辑 ]
2014-03-11 19:58
yuchao130
Rank: 2
等 级:论坛游民
帖 子:20
专家分:32
注 册:2014-2-19
收藏
得分:10 
这个是要干什么,问问题要全面啊
2014-03-12 07:23
shenlan4939
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-3-10
收藏
得分:0 
回复 2楼 yuchao130
这是全部的程序,是全有全无配流的代码。但程序只能执行第一个if语句,以后就会报错
#include<stdio.h>
#define N 9
#define a 10000
void main()
{
    int n=9;
    int path[9][9]={-1,-1,1,-1,3,4,3,4,5,-1,-1,-1,-1,-1,4,-1,4,5,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,4,-1,4,5,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
    int x[9][9]={0},b[9][9]={0,0,0,0,0,0,0,0,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
  
int i,j,i1,i11;
     for(i=0;i<n;i++)
    {
     for(j=0;j<n;j++)
        {if (path[i][j]!=i)
           {
              i1=path[i][j];
              printf("%d %d %d\n",i,i1,j);
              x[i1][j]=x[i1][j]+b[i][j];
           }
              printf("%d\n",i1);
          loop:if (path[i][i1]!=i)               
           {i11=path[i][i1];
            x[i11][i1]=x[i11][i1]+b[i][j];
            i1=path[i][i11];goto loop;
           }
          // printf("%d",path[i][i1]);
          if(path[i][j]==i)
           {
            x[i][j]=x[i][j]+b[i][j];
           }
             printf("%d %d/n",i,j);
     }
     }
printf("路段流量矩阵为:\n");
for(i=0;i<n;i++)
    {for(j=0;j<n;j++)
    printf("%4d",x[i][j]);
    printf("\n");}  

}


[ 本帖最后由 shenlan4939 于 2014-3-12 10:59 编辑 ]
2014-03-12 10:41
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:10 
loop:if (path[i][i1]!=i)   // 数组下标什么时候有-1了??

2014-03-12 13:24
快速回复:for语句嵌套多个if语句,不能完全执行
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027687 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved