免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2693 | 回复: 4
打印 上一主题 下一主题

求教:二维实型数组赋值 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-29 21:58 |只看该作者 |倒序浏览
求教:二维实型数组赋值

给一个2维数组赋值
main(){
   int i,j;
   float a[5][4];
   for(i=0;i<5;i++){
      for(j=0;j<4;j++){
         printf("%d%d",i,j);
         scanf("%f",&a[j][i]);
      }
   }
}

错误提示:scanf:floating point formats not linked
          Abnormal program termination

该怎么改呢
为什么我用 整型的就没错误呢
main(){
   int a[5][4];
   int i,j;
   for(i=0;i<5;i++){
      for(j=0;j<4;j++){
         printf("%d%d",i,j);
         scanf("%d",&a[j][i]);
      }
   }
}

论坛徽章:
0
2 [报告]
发表于 2005-12-29 22:20 |只看该作者
VC里面调试没有问题

论坛徽章:
0
3 [报告]
发表于 2005-12-29 22:33 |只看该作者
无论是第一个还是第二个,都是错的
a[j],i是行下标,j是列下标.
0 <= i <=4
0 <= j <= 3

由于二维数组的内存实际上还是连续分配的,实际上仍旧分配了5 x 4 = 20个4字节的单元--共80个字节.这就是你为什么没报错的原因,你的写入操作仍旧是在你分配的空间上做.但你的程序逻辑上已经出错了.
应当是


  1. for (i = 0; i < 5; i++)
  2.     for (j = 0; j < 4; j++)
  3.     {
  4.          printf("%d%d", i, j);
  5.          scanf("%d", &a[i][j]);
  6.     }
复制代码


a[0][0] a[0][1] a[0][2] a[0][3] -->
a[1][0] a[1][1] a[1][2] a[1][3] -->
a[2][0] a[2][1] a[2][2] a[2][3] -->
a[3][0] a[3][1] a[3][2] a[3][3] -->
a[4][0] a[4][1] a[4][2] a[4][3]
5 行 4 列

按你的代码,你认为数据时这样布局的
a[0][0] a[0][1] a[0][2] a[0][3] a[0][4] --->
a[1][0] a[1][1] a[1][2] a[1][3] a[1][4] --->
a[2][0] a[2][1] a[2][2] a[2][3] a[2][4] --->
a[3][0] a[3][1] a[3][2] a[3][3] a[3][4]
4行5列
c不是pascal,它的数组元素的存储是采用按行存储的方式,而不是按列存储.

错误的原因就是你没搞清楚,第一维是行下标,第二维是列下标.

scanf:floating point formats not linked
          Abnormal program termination

至于这个错误提示,我怀疑是你的编译器太老了,你在用一种需要链接浮点库的编译器.

[ 本帖最后由 renstone921 于 2005-12-29 22:39 编辑 ]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-12-29 22:59 |只看该作者
用的肯定是turbo c吧?
在程序开始加上一句:
float k = 1.0;
就好了。
zkai 该用户已被删除
5 [报告]
发表于 2005-12-29 23:11 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP