关于tc与vc++和鞍点的问题,求助!

2608 2002-05-08 05:31:15
鞍点是矩阵中每行最大并且是每列最小的数,array[4][4]应该是定义5*5的一个数组。
我用的是tc编的这个程序,但在tc下总是得出莫名其妙的结果,比如说min值总是得到1或是4。
于是又改到vc++上来(源程序没有修改),最大最小值能够顺利得出,但是
给数组初始化又出错

我不知道我错在那里了,望高手不吝赐教


#include <stdio.h>
#include <time.h>
#include <stdlib.h>

main()
{
int array[4][4]={{0},{0},{0},{0}},rsize,row,column,c,d,max=0,min=0;

/* 这里如果是array[4][4]={{0},{0},{0},{0},{0}},系统就会给出
too many initializers 的报错信息,可是如果不更改,又会得出后边的莫名其妙的结果 */

/* 显示初始化后数祖的值 */
for (row=0;row<=4;row++) {
for (column=0;column<=4;column++)
printf ("%10d",array[row][column]);
printf ("\n");
}

srand(time(NULL));


/* 在10--99之间取随机数字组成一个4*4的数组,舍去第0行和第0列 */
printf ("\n");
for (row=1;row<=4;row++) {
for (column=1;column<=4;column++) {
array[row][column]=10+rand()%90;
printf ("%10d",array[row][column]);
}
printf ("\n");
}

for (rsize=1;rsize<=4;rsize++) { /* 用rsize来控制1--4行的循环 */

/* 得到每行上最大数所在的列号c */
c=1; max=array[rsize][1];
for (column=2;column<=4;column++) {
if (max<array[rsize][column]) {
c=column; max=array[rsize][c];
}
}

/* 得到第c列上最大值所在的行号d */
d=1; min=array[1][c];
for (row=1;row<=4;row++) {
if (min>array[row][c]) {
d=row; min=array[row][c];
}
}

printf ("max=%d min=%d\n",max,min);
if (max==min) printf ("array[%d][%d] is sanddle pointer\n",d,c);
}
}






以下是上边这个程序在vc++6.0下运行的结果:

0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 1245120
1245120 4200137 1 4394656 4394464

87 97 99 80
33 86 82 55
15 50 99 83
18 43 86 34
max=99 min=82
max=86 min=43
max=99 min=82
max=86 min=82





...全文
31 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
2608 2002-05-15
  • 打赏
  • 举报
回复
结贴

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧