标题:未对数组A进行操作,但A中的元素位置却发生了变化。——求教大神
只看楼主
smartliang
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-2-28
结帖率:0
已结贴  问题点数:20 回复次数:9 
未对数组A进行操作,但A中的元素位置却发生了变化。——求教大神
求教各位大神:
(1)我往一个数组A赋值之后,对其它变量进行了操作,但没有对A操作。却发现A数组中的一些变量位置发生了变化,请问这种现象的原因是什么。而且这种现象出现了多次(对别的变量操作一次,A中的变量有一些发生位置变化)。并且只有在数组A中赋值数值达到一定值才会出现。
(2)我定义flag_posi_v[100]这样含有两个下划线的变量合法吗?
搜索更多相关主题的帖子: 下划线 元素 而且 
2016-02-28 16:12
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:10 
贴出你的代码让大家看看,你定义的变量名没有问题。

   唯实惟新 至诚致志
2016-02-28 16:50
smartliang
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-2-28
得分:0 
回复 2楼 qq1023569223
//(A1)对flag_posi_c进行赋值
  for(i9=1;i9<=xcou;i9+=1){
    a2=boten[i9][1];
    b2=boten[i9][2];   
    c3=(a2-a3)*(a2-a3)+(b2-b3)*(b2-b3);                  
     if(c3<len2_c){                 //len2_c,len1_c是前边代码计算的两个值,根据c3与两个值的关系,对flag_posi_c进行赋值
             flag_posi_c[i9]=2;
     }
     else if(c3>len1_c){
             flag_posi_c[i9]=1;
     }
     else{
                flag_posi_c[i9]=0;
        }
  }

//(A2)测试 flag_posi_c绘图(A2和A4的绘图不一样,把flag_posi_c[]输出,发现有部分元素位置发生了变化。
  int i1000;
  i1000=StrToInt(Edit35->Text);
  //测试输出"flag_posi_c1.txt"
  FILE *flag_posi_c1;                  
  if((flag_posi_c1=fopen("flag_posi_c1.txt","wt")) ==NULL)return;         
      
  if(CheckBox50->Checked==true){   
      for(i9=1;i9<=xcou;i9+=1){
            fprintf(flag_posi_c1,"%d\n",flag_posi_c[i9]);              
            if(flag_posi_c[i9]==i1000){
                  a=x0+cc*boten[i9][1];
              b=y0-cc*boten[i9][2];
                  Image1->Canvas->Pen->Color=clBlack;   
                  Image1->Canvas->MoveTo(a,b);
                     Image1->Canvas->LineTo(a+1,b+1);
               }
      }
  }
  fclose(flag_posi_c1);      
  //测试输出"flag_posi_c1.txt"
//测试 flag_posi_c绘图  

//(A3)与flag_posi_c无关的操作
for(i9=1;i9<=iax1[1];i9+=1){
    a2=boten[i9][1];
    b2=boten[i9][2];
      
    mxcou_c=mxcou_c+1;
    mxboten_c[mxcou_c][1]=boten[i9][1];
    mxboten_c[mxcou_c][2]=boten[i9][2];
    mxkind_c[mxcou_c]=kind[i9];               
    ia10_c=ia10_c+1;
    iax3_c=iax3_c+1;        
    flag_v_c[mxcou_c]=0;
    flag_v300[mxcou_c]=flag_v[i9];
}
//与flag_posi_c无关的操作

//(A4)测试flag_posi_c
   //测试输出"flag_posi_c2.txt"
   FILE *flag_posi_c2;         
   if((flag_posi_c2=fopen("flag_posi_c2.txt","wt")) ==NULL)return;      
   if(CheckBox55->Checked==true){
   i1000=StrToInt(Edit37->Text);
    for(i9=1;i9<=xcou;i9+=1){
          fprintf(flag_posi_c2,"%d\n",flag_posi_c[i9]);        
         if(flag_posi_c[i9]==i1000){
               a=x0+cc*boten[i9][1];
           b=y0-cc*boten[i9][2];
               Image1->Canvas->Pen->Color=clBlack;   
               Image1->Canvas->MoveTo(a,b);
                  Image1->Canvas->LineTo(a+1,b+1);
            }
    }
   }
   fclose(flag_posi_c2);         
   //测试输出"flag_posi_c2.txt"
//测试flag_posi_c
2016-02-29 09:47
smartliang
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-2-28
得分:0 
回复 2楼 qq1023569223
麻烦给看一下,非常感谢
2016-02-29 09:49
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:0 
不好意思,太乱了,看不明白。

   唯实惟新 至诚致志
2016-02-29 09:55
smartliang
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-2-28
得分:0 
回复 5楼 qq1023569223
代码一共是四块,A1,A2,A3,A4。A2和A4是测试用的,没有作用。A1是对flag_posi_c[]数组进行赋值,A3是对其它变量进行了操作。然后发现A2和A4输出的flag_posi_c[]数组元素位置发生了变化。能麻烦再看一下吗
2016-02-29 10:09
拉链
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:534
注 册:2016-1-22
得分:10 
100个元素的数组访问是从0-99,从1开始就越界到别的里面了
2016-02-29 10:20
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:0 
没有看出来不妥的地方。

   唯实惟新 至诚致志
2016-02-29 10:35
smartliang
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-2-28
得分:0 
回复 7楼 拉链
不太明白,可以说的详细点吗
2016-02-29 10:36
smartliang
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-2-28
得分:0 
回复 8楼 qq1023569223
好的,麻烦了
2016-02-29 10:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-462001-1-1.html




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

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