| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 555 人关注过本帖
标题:把有限数组改为无限数组时遇到的问题
只看楼主 加入收藏
月祭樱冢
Rank: 2
等 级:论坛游民
帖 子:83
专家分:97
注 册:2013-7-15
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
把有限数组改为无限数组时遇到的问题
程序是解决“求鞍点(该位置上的元素在其所在行最大列最小)问题”
原程序定义的是数组范围是3*4                                     改成让用户定义数组范围
#include<stdio.h>                                               #include<stdio.h>
#define n 3                                                     int main()
#define m 4                                                     {
int main()                                                       int i,j,n,m,a[n][m],max[n],min[m],flag=0;
{                                                                printf("请确定矩阵的范围\nrow=   colum=   \n");
int i,j,a[n][m],max[n],min[m],flag=0;                            scanf("%d%d",&n,&m);
printf("\nplease input the array:\n");                           后面的就和左边一样
for(i=0;i<n;i++)
  for(j=0;j<m;j++)
scanf("%d",&a[i][j]);
printf("the array you have input is:\n");
for(i=0;i<n;i++)
{for(j=0;j<m;j++)
printf("%4d",a[i][j]);printf("\n");}
for(i=0;i<n;i++)
{
max[i]=a[i][0];
for(j=0;j<m;j++)
if(a[i][j]>max[i])max[i]=a[i][j];
printf("max%d=%d  ",i,max[i]);
}
for(j=0;j<m;j++)
{
min[j]=a[0][j];
for(i=0;i<n;i++)
if(a[i][j]<min[j])min[j]=a[i][j];
printf("min%d=%d  ",j,min[j]);
}
for(i=0;i<n;i++)
  for(j=0;j<m;j++)
   if(max[i]==min[j]){flag=1;
   printf("the an dian shi a[%d][%d]=%d\n",i,j,a[i][j]);  
}
   if(flag==0)
printf(" meiyou andian!\n");
getch();
}

运行左边程序没问题但是运行右边时出现
D:\Microsoft Visual Studio\c程序\cheshi.c(3) : error C2057: expected constant expression
D:\Microsoft Visual Studio\c程序\cheshi.c(3) : error C2466: cannot allocate an array of constant size 0
D:\Microsoft Visual Studio\c程序\cheshi.c(3) : error C2057: expected constant expression
D:\Microsoft Visual Studio\c程序\cheshi.c(3) : error C2466: cannot allocate an array of constant size 0
D:\Microsoft Visual Studio\c程序\cheshi.c(3) : error C2087: '<Unknown>' : missing subscript
D:\Microsoft Visual Studio\c程序\cheshi.c(3) : error C2133: 'a' : unknown size
D:\Microsoft Visual Studio\c程序\cheshi.c(3) : error C2057: expected constant expression
D:\Microsoft Visual Studio\c程序\cheshi.c(3) : error C2466: cannot allocate an array of constant size 0
D:\Microsoft Visual Studio\c程序\cheshi.c(3) : error C2133: 'max' : unknown size
D:\Microsoft Visual Studio\c程序\cheshi.c(3) : error C2057: expected constant expression
D:\Microsoft Visual Studio\c程序\cheshi.c(3) : error C2466: cannot allocate an array of constant size 0
D:\Microsoft Visual Studio\c程序\cheshi.c(3) : error C2133: 'min' : unknown size
D:\Microsoft Visual Studio\c程序\cheshi.c(37) : warning C4013: 'getch' undefined; assuming extern returning int
这是什么情况  问题出现在哪里
搜索更多相关主题的帖子: include 用户 元素 
2013-07-19 00:04
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:10 
右边你在定义数组的时候是未知长度的,这是不允许的,可以使用malloc函数给数组动态分配内存空间

思考赐予新生,时间在于定义
2013-07-19 01:55
月祭樱冢
Rank: 2
等 级:论坛游民
帖 子:83
专家分:97
注 册:2013-7-15
收藏
得分:0 
回复 2楼 love云彩
  这个我去查查教程啊  谢谢啊

算法是程序的灵魂
2013-07-19 08:00
snailqiu
Rank: 2
等 级:论坛游民
帖 子:59
专家分:45
注 册:2007-9-26
收藏
得分:0 
回复 楼主 月祭樱冢
用malloc函数实现动态数组。
2013-07-19 10:13
快速回复:把有限数组改为无限数组时遇到的问题
数据加载中...
 
   



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

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