C语言,不会做,急!

[复制链接]
查看11 | 回复5 | 2013-5-20 10:31:58 | 显示全部楼层 |阅读模式
#include #define M 3#define N 4int main(){
int max, i, j, r, c;
int a[M][N] = {{1230, 94, -10, 218}, {3, 9, 10, -83}, {45, 16, 44, -99}};
max = a[0][0];
r = c = 0; // 添加这条初始化的语句
for (i = 0; imax)
{
...
回复

使用道具 举报

千问 | 2013-5-20 10:31:58 | 显示全部楼层
将r和c初始化为0就可以了或者将if(a[j]>max)改为if(a[j]>=max) 因为如果a[0][0]改为1230后,它就是最大的元素.r=i,c=j这句运行不到..又没有初始化这两个变量.局部变量不初始化输出一个随机数!...
回复

使用道具 举报

千问 | 2013-5-20 10:31:58 | 显示全部楼层
第一次输出:max=218,row=0,colum=3第二次输出:max=1230,row=13508596,colum=12153552因为第二次将a[0][0]赋值为1230,if条件一直都不满足,所以没有执行if块中的语句,r/c没有赋初值,所以才会打印如上的输出...
回复

使用道具 举报

千问 | 2013-5-20 10:31:58 | 显示全部楼层
a[0][0]赋值为1230后,它就是最大的,for循环始终没有进行,r,j没有具体赋值,所以程序会出错...
回复

使用道具 举报

千问 | 2013-5-20 10:31:58 | 显示全部楼层
int r = 0;int c= 0;把r,c初始化一下就可以了...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行