第十二天:二维数组与字符串处理

请添加图片描述

void two_dimensional_array_max() {
  int h, l;
  printf("行*列:");
  scanf("%d*%d", &h, &l);
  int a[h][l];
  for (int *p = &a[0][0]; p < &a[0][0] + h * l; ++p) {
    scanf("%d", p);
  }
  int max;
  int second;
  int second_i, second_j;
  if (a[0][0] > a[0][1]) {
    max = a[0][0];
    second = a[0][1];
    second_i = 0;
    second_j = 1;
  } else {
    max = a[0][1];
    second = a[0][0];
    second_i = 0;
    second_j = 0;
  }
  for (int i = 0; i < h; ++i) {
    for (int j = 0; j < l; ++j) {
      if (a[i][j] >= max) {
        max = a[i][j];
      } else {
        if (a[i][j] > second) {
          second = a[i][j];
          second_i = i;
          second_j = j;
        }
      }
    }
  }
  printf("[%d,%d]:%d", second_i, second_j, second);
}

void yanghui_triangle() {
  int c;
  printf("几层:");
  scanf("%d", &c);
  int triangle[c][c];
  for (int i = 0; i < c; ++i) {
    for (int j = 0; j < c; ++j) {
      if (j == 0 || i == j) {
        triangle[i][j] = 1;
      } else {
        triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
      }
    }
  }
  for (int i = 0; i < c; ++i) {
    for (int j = 0; j <= i; ++j) {
      printf("%4d", triangle[i][j]);
    }
    printf("\n");
  }
}

void reverse_words() {
  char str[] = "I love you";
  unsigned long len = strlen(str);
  int start = 0;
  int end;
  for (int i = 0; i < len / 2; i++) {
    str[i] = str[i] ^ str[len - i - 1];
    str[len - i - 1] = str[i] ^ str[len - i - 1];
    str[i] = str[i] ^ str[len - i - 1];
  }
  for (int i = 0; i < len - 1; ++i) {
    if (str[i] != ' ' && (str[i + 1] == ' ' || str[i + 1] == '\0')) {
      end = i;
      for (int j = start; j < (end - start + 1) / 2; j++) {
        str[j] = str[j] ^ str[end - 1];
        str[end - 1] = str[j] ^ str[end - 1];
        str[j] = str[j] ^ str[end - 1];
      }
    }
    if (str[i] != ' ' && str[i - 1] == ' ' && str[i] != '\0') {
      start = i;
    }
  }
  printf("%s\n", str);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值