| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 543 人关注过本帖
标题:关于数组的循环迭代,while()里面的表达是数组该怎么写? 谢谢
只看楼主 加入收藏
清香傅天心
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2015-5-20
结帖率:90%
收藏
已结贴  问题点数:20 回复次数:9 
关于数组的循环迭代,while()里面的表达是数组该怎么写? 谢谢
# include <stdio.h>
int main()
{
  int i,j;
  float R[2][3],T[2][3],r[2],K[2],K0[3],K1[3],K2[3],D[3],O[2];
for(i=0;i<2;i++)
      for(j=0;j<3;j++){
         printf("请输入交通阻抗R[%d][%d]:",i+1,j+1);
         scanf("%f",&R[i][j]);
      }

for(i=0;i<2;i++){
          printf("请输入吸引区吸引量之和[%d]:",i+1);
         scanf("%f",&O[i]);
     }

for(j=0;j<3;j++){
          printf("请输入产生区产生量之和[%d]:",j+1);
         scanf("%f",&D[j]);
     }
for(j=0;j<3;j++){
          printf("请输入列约束系数K2[%d]:",j+1);
         scanf("%f",&K2[j]);
}
//do
//{
for(i=0;i<2;i++){
    K[i]=0;
  for(j=0;j<3;j++)
      K[i]+=K2[j]*D[j]/R[i][j];
      K1[i]=1/K[i];
 //printf("行约束系数K1[%d]为:%f\n",i+1,K1[i]);
}

for(j=0;j<3;j++){
      K0[j]=0;
  for(i=0;i<2;i++)
      K0[j]+=K1[i]*O[i]/R[i][j];
      K2[j]=1/K0[j];
    // printf("列约束系数K2[%d]为:%f\n",j+1,K2[j]);
}//while(r[i]<0.03)
for(i=0;i<2;i++)
for(j=0;j<3;j++){
       T[i][j]=K1[i]*K2[j]*O[i]*D[j]/R[i][j];
       printf("理论的OD出行分布量T[%d][%d]:%.1f\n",i+1,j+1,T[i][j]);
}

return 0;
}
搜索更多相关主题的帖子: include 
2015-06-04 17:24
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:20 
程序代码:
do{
for(i=0;i<2;i++){
    K[i]=0;
  for(j=0;j<3;j++)
      K[i]+=K2[j]*D[j]/R[i][j];
      K1[i]=1/K[i];
printf("行约束系数K1[%d]为:%f\n",i+1,K1[i]);
}

for(j=0;j<3;j++){
      K0[j]=0;
  for(i=0;i<2;i++)
      K0[j]+=K1[i]*O[i]/R[i][j];
      K2[j]=1/K0[j];
     printf("列约束系数K2[%d]为:%f\n",j+1,K2[j]);
}

}while(r[i]<0.03);

判断条件。。。

剑栈风樯各苦辛,别时冰雪到时春
2015-06-04 17:28
清香傅天心
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2015-5-20
收藏
得分:0 
其中r[i]表达式为K1[i]的相对误差值:暂用K1'表示上次迭代结果,K1表示本次迭代结果
即r[i]=abs(K1[i]-K'1[i])/K'1[i]
2015-06-04 17:35
清香傅天心
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2015-5-20
收藏
得分:0 
帮忙看看如何将以上的东西融入程序中,尤其是不同两次的迭代结果这个该怎么写入表达中??
2015-06-04 17:41
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
还是不太明白,试着做了下,不对不要怪我哦,人家是新手
程序代码:
do{
for(i=0;i<2;i++){
    K[i]=0;
  for(j=0;j<3;j++)
      K[i]+=K2[j]*D[j]/R[i][j];
      K1[i]=1/K[i];
printf("行约束系数K1[%d]为:%f\n",i+1,K1[i]);
}

for(j=0;j<3;j++){
      K0[j]=0;
  for(i=0;i<2;i++)
      K0[j]+=K1[i]*O[i]/R[i][j];
      K2[j]=1/K0[j];
     printf("列约束系数K2[%d]为:%f\n",j+1,K2[j]);
}
r[i]=fabs((K2[i]-K1[i])/K1[i]);
}while(r[i]<0.03);

剑栈风樯各苦辛,别时冰雪到时春
2015-06-04 18:07
清香傅天心
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2015-5-20
收藏
得分:0 
无论如何谢谢!可能我没说明白,r是K1相对于K1上次迭代结果的相对误差,与K2无关。
2015-06-04 19:11
清香傅天心
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2015-5-20
收藏
得分:0 
r是do...while循环中第n次循环中K1值相对于第n-1次循环中K1值的相对误差,当r满足r<0.03时循环结束
2015-06-04 19:21
清香傅天心
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2015-5-20
收藏
得分:0 
急需,求高手赐教!!
2015-06-04 21:08
清香傅天心
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2015-5-20
收藏
得分:0 
要用其他语句,或给些建议也行,我也就有头绪摸索,谢谢诸位了!!
2015-06-04 22:43
清香傅天心
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2015-5-20
收藏
得分:0 
已编出
# include <stdio.h>
int main()
{
  int i,j;
  float R[2][3],T[2][3],r[2],K[2],K0[3],K1[2],K2[3],K3[2],D[3],O[2];
for(i=0;i<2;i++)
      for(j=0;j<3;j++){
         printf("请输入交通阻抗R[%d][%d]:",i+1,j+1);
         scanf("%f",&R[i][j]);
      }

for(i=0;i<2;i++){
          printf("请输入吸引区吸引量之和[%d]:",i+1);
         scanf("%f",&O[i]);
     }

for(j=0;j<3;j++){
          printf("请输入产生区产生量之和[%d]:",j+1);
         scanf("%f",&D[j]);
     }
for(j=0;j<3;j++){
          printf("请输入列约束系数K2[%d]:",j+1);
         scanf("%f",&K2[j]);
}
do
{
for(i=0;i<2;i++){
    K[i]=0;
  for(j=0;j<3;j++)
      K[i]+=K2[j]*D[j]/R[i][j];
      K1[i]=1/K[i];
 //printf("行约束系数K1[%d]为:%f\n",i+1,K1[i]);
}

for(j=0;j<3;j++){
      K0[j]=0;
  for(i=0;i<2;i++)
      K0[j]+=K1[i]*O[i]/R[i][j];
      K2[j]=1/K0[j];
 // printf("列约束系数K2[%d]为:%f\n",j+1,K2[j]);
}
for(i=0;i<2;i++){
    K[i]=0;
  for(j=0;j<3;j++)
      K[i]+=K2[j]*D[j]/R[i][j];
      K3[i]=1/K[i];
}
r[i]=fabs((K3[i]-K1[i])/K1[i]);
}while(r[i]<0.03);
for(i=0;i<2;i++)
for(j=0;j<3;j++){
       T[i][j]=K1[i]*K2[j]*O[i]*D[j]/R[i][j];
       printf("理论的OD出行分布量T[%d][%d]:%.1f\n",i+1,j+1,T[i][j]);
}
return 0;
}
2015-06-05 20:22
快速回复:关于数组的循环迭代,while()里面的表达是数组该怎么写? 谢谢
数据加载中...
 
   



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

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