|
|
发表于 2023-8-1 19:17:26
|
显示全部楼层
- #include <stdio.h>
- double er(double *abcd, int x, int y)
- {
- int a, b;
- read_input:
- printf("输入你要打印的元素。(格式:行,列)\n");
- scanf("%d,%d", &a, &b);
- if (a > x || b > y || a <= 0 || b <= 0)
- {
- printf("你输入的行或者列错误。\n");
- goto read_input;
- }
- double *p = abcd + (a - 1) * y + (b - 1); // 计算指向所需元素的指针位置
- printf("%f\n", *p);
- }
- int main()
- {
- double ab[9][99] = { 0 };
- int a, b;
- int d = 0, f = 0;
- printf("输入二维数组的行数。\n");
- scanf("%d", &a);
- printf("输入二维数组的列数。\n");
- scanf("%d", &b);
- printf("依次输入二维数组的元素。\n");
- for (;d < a;d++)
- {
- for (;f < b;f++)
- {
- scanf("%lf", &ab[d][f]);
- }
- f = 0;
- }
- er(&ab[0][0], a, b);
- return 0;
- }
复制代码
修改内容如下:
1. 移除 scanf_s 函数中的 _s 后缀。
2. 修复换行符 \n 的转义错误。
3. 在输入提示的标签处添加 read_input: 标签。
4. 将 double* p = abcd + (a + 1) * y + (b - 1); 修改为 double *p = abcd + (a - 1) * y + (b - 1);,以修正计算指向所需元素的指针位置。
5. 在 main 函数中,修复换行符的转义错误。
6. 移除 scanf_s 函数中的 _s 后缀。
7. 在内层循环结束后,添加 f = 0; 以重置循环计数器。
8. 添加 return 0; 以返回一个整数类型的值。
希望这次能够满足你的需求,如果还有其他问题,请随时提问。
如果回答对你有帮助,请给我一个最佳答案!  
|
|