| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 850 人关注过本帖
标题:关于二维数组的问题,球大神指点。(每天一封贴,强壮C语言)!!
只看楼主 加入收藏
Mirob
Rank: 4
来 自:农村
等 级:业余侠客
帖 子:191
专家分:264
注 册:2012-7-20
收藏
得分:0 
回复 9楼 heroinearth
哦,对,那是不是要把n定义成float型?
2012-11-13 16:49
Mirob
Rank: 4
来 自:农村
等 级:业余侠客
帖 子:191
专家分:264
注 册:2012-7-20
收藏
得分:0 
回复 10楼 heroinearth
额,看到了。float *k
2012-11-13 16:51
XuMM_12
Rank: 1
等 级:新手上路
帖 子:8
专家分:9
注 册:2012-11-12
收藏
得分:0 
getdata函数里,如果X<=9的话 好像这个位置的值直接设为0了额
2012-11-13 16:58
Mirob
Rank: 4
来 自:农村
等 级:业余侠客
帖 子:191
专家分:264
注 册:2012-7-20
收藏
得分:0 
回复 13楼 XuMM_12
好像运行直接是0。看运行好像是这句话有问题。数组的至是在10-40之间,不能等于9,

[ 本帖最后由 Mirob 于 2012-11-13 17:04 编辑 ]
2012-11-13 17:00
XuMM_12
Rank: 1
等 级:新手上路
帖 子:8
专家分:9
注 册:2012-11-12
收藏
得分:3 
回复 14楼 Mirob
if(x>9)
             p[i][j]=x;
 else
             j--;           
 j++;

楼主看看可以不
----------------------------------------------------
多谢楼主提醒 T皿T
while(j<6)
         {
          do
          x=random(41);
          while(x>9);

             p[i][j]=x;
               j++;
         }
这样可以了伐? 表示新手压力山大


[ 本帖最后由 XuMM_12 于 2012-11-13 17:20 编辑 ]
2012-11-13 17:04
Mirob
Rank: 4
来 自:农村
等 级:业余侠客
帖 子:191
专家分:264
注 册:2012-7-20
收藏
得分:0 
回复 15楼 XuMM_12
当j=0时,开始,如果随机函数复制小于9,那还运行j--?好像还是不行的。你再帮忙看看?
你说的这个这样写,效果是一样的吧。
          if(x>9)
            {
              p[i][j]=x;
              j++;
            }


[ 本帖最后由 Mirob 于 2012-11-13 17:11 编辑 ]
2012-11-13 17:06
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:0 
程序代码:
getdata(int (*p)[6])
{int i,j,x;
     j=0;
   for(i=0;i<5;i++)  
     { while(j<6)
         {
          x=random(41);
           if(x>9)
             {
               p[i][j]=x;
               j++;
              }
         }
     j=0;//这里要将j赋值为0,才能进行下一个循环,
   }
  
}

这个也改了一下
out(int s[5][6],float *k)
{int i,j;
  for(i=0;i<5;i++)
    { for(j=0;j<6;j++)
      {
      printf(" %d ",s[i][j]);
      }
       printf("%.2f\n",k[i]) ;
     
    }
}
fun(int q[][6],float *k)
{int i,j,n;
float m;
  m=0;
  n=0;
for(i=0;i<5;i++)
   {for(j=0;j<6;j++)
      n=n+q[i][j];
      m=n/6.0;
     k[i]=m;
     n=0;//n也要赋值为0 

   }
}



[ 本帖最后由 heroinearth 于 2012-11-13 17:58 编辑 ]
2012-11-13 17:39
Mirob
Rank: 4
来 自:农村
等 级:业余侠客
帖 子:191
专家分:264
注 册:2012-7-20
收藏
得分:0 
回复 17楼 heroinearth
图片附件: 游客没有浏览图片的权限,请 登录注册
运行结果怎么这样?我在VC++6.0上面运行的,数字不在10-40内?
2012-11-13 19:47
Mirob
Rank: 4
来 自:农村
等 级:业余侠客
帖 子:191
专家分:264
注 册:2012-7-20
收藏
得分:0 
回复 17楼 heroinearth
明白了。在VC++里面 rand()是这样的。谢谢这个兄弟啊,明白了。
程序代码:
# include <stdio.h>
# include <stdlib.h>
void getdata(int (*p)[6])
{int i,j,x;
     j=0;
   for(i=0;i<5;i++) 
     { while(j<6)
         {
          x=rand();
           if(x>9&x<41)
           {
               p[i][j]=x;
               j++;
           }
         }
     j=0;
   }

 
}
void out(int s[5][6],float *k)
{int i,j;
  for(i=0;i<5;i++)
    { for(j=0;j<6;j++)
      {
      printf(" %d ",s[i][j]);
      }
       printf("%.2f\n",k[i]) ;
    
    }
}
void fun(int q[][6],float *k)
{int i,j;
float n,m;
  m=0;
  n=0;
for(i=0;i<5;i++)
   {for(j=0;j<6;j++)
      n=n+q[i][j];
      m=n/6;
     k[i]=m;
     n=0;

   }
}
main()
{int a[5][6];
float k[6];
getdata(a);
fun(a,k);
out(a,k);
}
2012-11-13 20:19
wtw199186
Rank: 2
等 级:论坛游民
帖 子:55
专家分:78
注 册:2012-9-22
收藏
得分:0 
getdata(int (*p)[6])
 {int i,j,x;
    for(i=0;i<5;i++)   
      {  j=0;            //j是不是要在这儿啊
          while(j<6)
          {
           x=random(41);
            if(x>9)
              
                p[i][j]=x;
                j++;
               
          }
       }   
 }
2012-11-13 20:25
快速回复:关于二维数组的问题,球大神指点。(每天一封贴,强壮C语言)!!
数据加载中...
 
   



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

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