关于一个FOR循环

相门三少 2009-10-29 12:27:46
有1个M x N的矩阵, 现在想让矩阵中每个右边的元素与他左边的元素比较,结果大的话 S+1.
将每个下面的元素与他上面的元素比较,结果大的话 S+1
以 A[n]代表各个元素

for(j=0; j<N; j++)
{
for(i=0; i<M; i++)
{
if(A[j*M+i+1] > A[j*M+i]) S++;
if(A[(j+1)*M+i] > A[j*M+i]) S++;
}
}

但是我发现每行的第一个元素会与上一行的最后一个元素做比较
每列的第一个元素会与上一列的最后一个元素做比较,请问怎么消除这个问题
...全文
151 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cphj 2009-10-29
  • 打赏
  • 举报
回复
少循环一次就行了
illuminati 2009-10-29
  • 打赏
  • 举报
回复
就是像二楼那样
haierpro 2009-10-29
  • 打赏
  • 举报
回复
for(j=0; j < N-1; j++)
{
for(i=0; i < M-1; i++)
{
if(A[j*M+i+1] > A[j*M+i]) S++;
if(A[(j+1)*M+i] > A[j*M+i]) S++;
}
}
hrlhrl0 2009-10-29
  • 打赏
  • 举报
回复
简单加几个判断不就可以了
crane1991 2009-10-29
  • 打赏
  • 举报
回复
相门三少 2009-10-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 whg01 的回复:]
引用 2 楼 haierpro 的回复:
for(j=0; j < N-1; j++)
{
  for(i=0; i < M-1; i++)
  {
    if(A[j*M+i+1] > A[j*M+i]) S++;
    if(A[(j+1)*M+i] > A[j*M+i]) S++;
  }
}

没错,能计算到。
0  1  2  3  4
5  6  7  8  9
是2×5,2-1=1;for循环会执行一次。

[/Quote]


N=2, j的取值范围只有0, 所以if(A[j*M+i+1] > A[j*M+i]) S++; 无法计算到5 6 7 8 9
这一行啊,没办法我就只能加限制条件了
sea_sharka_17 2009-10-29
  • 打赏
  • 举报
回复
一群大虾子 帮你写作业
whg01 2009-10-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 haierpro 的回复:]
for(j=0; j < N-1; j++)
{
  for(i=0; i < M-1; i++)
  {
    if(A[j*M+i+1] > A[j*M+i]) S++;
    if(A[(j+1)*M+i] > A[j*M+i]) S++;
  }
}
[/Quote]
没错,能计算到。
0 1 2 3 4
5 6 7 8 9
是2×5,2-1=1;for循环会执行一次。
相门三少 2009-10-29
  • 打赏
  • 举报
回复
5楼的兄弟是把1维的换算到2维去做了
相门三少 2009-10-29
  • 打赏
  • 举报
回复
你们有试过吗?
比如


0 1 2 3 4
5 6 7 8 9

如果少循环一次
for(j=0; j < N-1; j++)
{
for(i=0; i < M-1; i++)
{
if(A[j*M+i+1] > A[j*M+i]) S++;
if(A[(j+1)*M+i] > A[j*M+i]) S++;
}
}

5 6 7 8 9
还会被计算到吗?
wangyang327329 2009-10-29
  • 打赏
  • 举报
回复
for(int i = 0; i < M - 1; ++i
{
for(int j = 0; j < N - 1; ++j)
{
if(A[i][j] < A[i + 1][j]) s++;
if(A[i][j] < A[i][j + 1]) s++;
}
}

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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