鱼C论坛

 找回密码
 立即注册
查看: 3534|回复: 20

利用指针指定打印二维数组的某行某列的元素

[复制链接]
发表于 2023-8-1 19:18:01 | 显示全部楼层
  1. #include <stdio.h>

  2. void printElement(double *arr, int x, int y) {
  3.     int a, b;
  4.     printf("输入你要打印的元素。(格式:行,列)\n");
  5.     scanf_s("%d,%d", &a, &b);
  6.     if (a > x || b > y) {
  7.         printf("你输入的行或者列错误。\n");
  8.         printElement(arr, x, y); // 输入错误时递归调用自身重新输入
  9.         return;
  10.     }
  11.     double *p = arr + (a - 1) * y + (b - 1);
  12.     printf("%f\n", *p);
  13. }

  14. int main() {
  15.     double ab[9][99] = { 0 };
  16.     int a, b;
  17.     printf("输入二维数组的行数。\n");
  18.     scanf_s("%d", &a);
  19.     printf("输入二维数组的列数。\n");
  20.     scanf_s("%d", &b);
  21.     printf("依次输入二维数组的元素。\n");
  22.     for (int i = 0; i < a; i++) {
  23.         for (int j = 0; j < b; j++) {
  24.             scanf_s("%lf", &ab[i][j]);
  25.         }
  26.     }
  27.     printElement(&ab[0][0], a, b);
  28.    
  29.     return 0;
  30. }
复制代码

这个有指针了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-1 19:20:41 | 显示全部楼层
我现在这个有指针了!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-1 19:22:10 | 显示全部楼层
  1. #include <stdio.h>

  2. void printElement(double **arr, int x, int y) {
  3.     int a, b;
  4.     printf("输入你要打印的元素。(格式:行,列)\n");
  5.     scanf_s("%d,%d", &a, &b);
  6.     if (a > x || b > y) {
  7.         printf("你输入的行或者列错误。\n");
  8.         printElement(arr, x, y); // 输入错误时递归调用自身重新输入
  9.         return;
  10.     }
  11.     double *p = *(arr + a - 1) + b - 1;
  12.     printf("%f\n", *p);
  13. }

  14. int main() {
  15.     int a, b;
  16.     printf("输入二维数组的行数。\n");
  17.     scanf_s("%d", &a);
  18.     printf("输入二维数组的列数。\n");
  19.     scanf_s("%d", &b);

  20.     double **ab = new double*[a];
  21.     for (int i = 0; i < a; i++) {
  22.         ab[i] = new double[b];
  23.     }

  24.     printf("依次输入二维数组的元素。\n");
  25.     for (int i = 0; i < a; i++) {
  26.         for (int j = 0; j < b; j++) {
  27.             scanf_s("%lf", &ab[i][j]);
  28.         }
  29.     }

  30.     printElement(ab, a, b);

  31.     // 释放内存
  32.     for (int i = 0; i < a; i++) {
  33.         delete[] ab[i];
  34.     }
  35.     delete[] ab;

  36.     return 0;
  37. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-1 19:25:15 | 显示全部楼层
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. void printElement(double **arr, int x, int y) {
  4.     int a, b;
  5.     printf("输入你要打印的元素。(格式:行,列)\n");
  6.     scanf_s("%d,%d", &a, &b);
  7.     if (a > x || b > y || a <= 0 || b <= 0) {
  8.         printf("你输入的行或者列错误。\n");
  9.         printElement(arr, x, y); // 输入错误时递归调用自身重新输入
  10.         return 0;
  11.     }
  12.     double *p = *(arr + a - 1) + b - 1;
  13.     printf("%f\n", *p);
  14. }

  15. int main() {
  16.     int a, b;
  17.     printf("输入二维数组的行数。\n");
  18.     scanf_s("%d", &a);
  19.     printf("输入二维数组的列数。\n");
  20.     scanf_s("%d", &b);

  21.     double **ab = (double**)malloc(a * sizeof(double*));
  22.     for (int i = 0; i < a; i++) {
  23.         ab[i] = (double*)malloc(b * sizeof(double));
  24.     }

  25.     printf("依次输入二维数组的元素。\n");
  26.     for (int i = 0; i < a; i++) {
  27.         for (int j = 0; j < b; j++) {
  28.             scanf_s("%lf", &ab[i][j]);
  29.         }
  30.     }

  31.     printElement(ab, a, b);

  32.     return 0;
  33. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-1 19:32:17 | 显示全部楼层
Sorawithcat 发表于 2023-8-1 19:30
这个代码和我的差不多吧行数输入大于2时输出为0

https://blog.csdn.net/weixin_44074246/article/details/116445909
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-1 19:34:07 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-1 19:42:16 | 显示全部楼层
Sorawithcat 发表于 2023-8-1 19:37
我这里主要是传参的时候搞不懂就是在学这个

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
我也没办法了QAQ

要不你把最佳给我吧,反正也没人会
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-1 19:45:47 | 显示全部楼层


看样子你是不会给我了,算了,bye,我去写作业了,QAQ
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-31 07:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表