| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1133 人关注过本帖
标题:两次打印的结果为什么不一样???
只看楼主 加入收藏
pengyancai
Rank: 2
等 级:论坛游民
帖 子:57
专家分:46
注 册:2013-3-4
结帖率:90.91%
收藏
已结贴  问题点数:15 回复次数:14 
两次打印的结果为什么不一样???
/*四个学生五门课,输出最高成绩以及它属于第几个学生第几门课*/
# include <stdio.h>
int row,column;/*设置全局变量,row表示最高成绩的学生序号,column表示最高成绩属于第几门课*/
void main ()
{
  float max(float a[4][5]);                                                                   /*定义函数max*/
  float cj[4][5]={{61,73,85.5,87,90},{72,84,66,88,78},{75,87,93.5,81,96},{65,85,64,76,71}};   /*cj表示成绩*/
  printf("%.2f\n%d,%d\n",max(cj),row,column);                                                 /*问题!!!*/
  printf("%d,%d\n",row,column);                                                               /*正常!!!*/
}
float max(float a[4][5])
{
  int i,j;
  float t=0;
  for (i=0;i<4;i++)
      for (j=0;j<5;j++)
          if (a[i][j]>t)
          {
            t=a[i][j];row=i+1;column=j+1;
          }  
          return (t);
}
/*****************************************************************************************************
求助各路神仙,为什么输出的结果row和column不一样,是什么原因?
*****************************************************************************************************/
搜索更多相关主题的帖子: max include 
2013-03-23 22:35
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:3 
各路神仙。哈哈,这个称呼很好笑啊

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-03-23 22:58
不玩虚的
Rank: 9Rank: 9Rank: 9
来 自:四川
等 级:贵宾
威 望:10
帖 子:331
专家分:1301
注 册:2012-12-9
收藏
得分:5 
神仙是没有的,夜猫子到有些。教你个最笨的方法学着计算机走一遍。假设你就是计算机。会用debug不?一步一步的走,会知道原因的。希望楼主学习愉快

同学习......同进步....你帮我......我帮你.....上善若水.....
2013-03-23 23:03
smile_line
Rank: 2
等 级:论坛游民
帖 子:65
专家分:19
注 册:2013-3-3
收藏
得分:0 
回复 3楼 不玩虚的
求教Debug怎么用
2013-03-23 23:27
smile_line
Rank: 2
等 级:论坛游民
帖 子:65
专家分:19
注 册:2013-3-3
收藏
得分:2 
奇怪,前面定义的数组是float型的,但你输出的时候用了整形输出,本来就应该输出0的。怎么你第二条能输出呢???帮顶
2013-03-23 23:36
qiankai
Rank: 2
等 级:论坛游民
帖 子:35
专家分:49
注 册:2012-4-22
收藏
得分:0 
输出的结果本来就应该不一样啊。这个代码我执行了一下结果是:最大数是96.00  ,row = 3,column = 5 对的啊。不是第三个学生的第五个成绩最高吗?
2013-03-23 23:53
shmilyflf
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:356
专家分:1008
注 册:2012-12-9
收藏
得分:2 
我猜是从右向左输出的吧,具体不清楚。
2013-03-24 01:36
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:3 
这块没深入研究过,我觉得第一个printf属于标准未指定函数参数求值顺序的情况。例如有的编译器是先算max,再算row和column,有的编译器是反着的。如果先算max,则全局变量row和column就确定了,如果后算max,则第一次打印的row和column就是不确定的值。

总有那身价贱的人给作业贴回复完整的代码
2013-03-24 07:34
pengyancai
Rank: 2
等 级:论坛游民
帖 子:57
专家分:46
注 册:2013-3-4
收藏
得分:0 
回复 3楼 不玩虚的
求教一下,bebug如何使用,百度过了,觉得如果能举一个例子说明一下如何使用更清晰,谢谢老师。
2013-03-24 08:38
pengyancai
Rank: 2
等 级:论坛游民
帖 子:57
专家分:46
注 册:2013-3-4
收藏
得分:0 
回复 5楼 smile_line
你好,我之前定义的float数组变量是用来存放成绩,定义的int全局变量row和column分别用来存放的学生序号和学生的第几门课的。请你再看下我的代码,谢谢。
2013-03-24 08:42
快速回复:两次打印的结果为什么不一样???
数据加载中...
 
   



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

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