标题:for循环的嵌套老是看不明白,请哪位大侠解释一下
只看楼主
winglesswu
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2013-1-28
结帖率:71.88%
已结贴  问题点数:20 回复次数:12 
for循环的嵌套老是看不明白,请哪位大侠解释一下
下面是一个合并两个数组并排序的程序,函数中for循环的嵌套老是看不明白:


#include <stdio.h>
 
void merge(int [], int, int [], int, int []);
 
int main() {
  int a[100], b[100], m, n, c, sorted[200];
 
  printf("Input number of elements in first array\n");
  scanf("%d", &m);
 
  printf("Input %d integers\n", m);
  for (c = 0; c < m; c++) {
    scanf("%d", &a[c]);
  }
 
  printf("Input number of elements in second array\n");
  scanf("%d", &n);
 
  printf("Input %d integers\n", n);
  for (c = 0; c < n; c++) {
    scanf("%d", &b[c]);
  }
 
  merge(a, m, b, n, sorted);
 
  printf("Sorted array:\n");
 
  for (c = 0; c < m + n; c++) {
    printf("%d\n", sorted[c]);
  }
 
  return 0;
}
 
void merge(int a[], int m, int b[], int n, int sorted[]) {
  int i, j, k;
 
  j = k = 0;
 
  for (i = 0; i < m + n;) {
    if (j < m && k < n) {
      if (a[j] < b[k]) {
        sorted[i] = a[j];
        j++;
      }
      else {
        sorted[i] = b[k];
        k++;
      }
      i++;
    }
    else if (j == m) {
      for (; i < m + n;) {
        sorted[i] = b[k];
        k++;
        i++;
      }
    }
    else {
      for (; i < m + n;) {
        sorted[i] = a[j];
        j++;
        i++;
      }
    }
  }
}
搜索更多相关主题的帖子: number include elements 
2013-04-09 10:09
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:2 
自己DEBUG一下

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-04-09 10:25
c人er
Rank: 2
来 自:武汉理工大学
等 级:论坛游民
帖 子:45
专家分:56
注 册:2013-3-22
得分:2 
[e

超英赶美若等闲…
2013-04-09 12:45
C入一口气
Rank: 2
等 级:论坛游民
帖 子:14
专家分:22
注 册:2013-4-10
得分:2 
我也是来学习滴。
2013-04-10 22:58
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
得分:2 
艾玛,那么长的代码。
你自己调试过么?
for是循环语句,
如果说
for()
 {
       for(        )
}
的话,就是第一个for做一次,下面的for已经循环完一圈了

极品菜鸟,来学习啦,啦啦啦啦啦啦啦。。。
2013-04-11 16:53
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
得分:2 
关键问题是单个循环语句的执行次序是否真正理解掌握了

www.qunxingw.wang
2013-04-11 16:57
zc1992312
Rank: 2
等 级:论坛游民
帖 子:43
专家分:12
注 册:2013-3-20
得分:2 
大家一起努力哈、、、
2013-04-11 21:23
y3765258
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:106
专家分:172
注 册:2013-4-9
得分:2 
你应该再代码处标记下 那里的循环看不懂。

有问题一起探讨,一起进步。
2013-04-11 21:32
我国的驾
Rank: 2
等 级:论坛游民
帖 子:17
专家分:10
注 册:2012-11-25
得分:2 
试数。。。
2013-04-11 21:52
czzdcn123
Rank: 7Rank: 7Rank: 7
来 自:江西
等 级:黑侠
威 望:3
帖 子:258
专家分:510
注 册:2013-3-7
得分:2 
建议楼主像int main() {   void merge(int a[], int m, int b[], int n, int sorted[])  {   这种花括弧换行 那样更易别人看你的代码
2013-04-11 22:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-403435-1-1.html




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

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