|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<string.h>
int main()
{
int x=0;
scanf("%d",&x);
int i=0;
int j=0;
int a[i][j];
int*p=a;
for(i=0;i<x;i++)
{
for(j=0;j<x;j++)
{
scanf("%d",*p);
}
}/*输入矩阵*/
for(i=0;i<x;i++)
{
for(j=0;j<x;j++)
{
printf("%d ",a[i][j]);/*输出矩阵*/
}
printf("\n");
}
return 0;
}
定义了一个指针p 指向二维数组,输入数组的时候,一直不对,这里scanf("%d",*p);应该怎么改
你可以使用指针来表示二维数组。下面是一个例子:
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int rows, cols;
- printf("请输入二维数组的行数和列数:");
- scanf("%d %d", &rows, &cols);
-
- // 动态分配内存
- int **arr = (int**)malloc(rows * sizeof(int*));
- for(int i = 0; i < rows; i++) {
- arr[i] = (int*)malloc(cols * sizeof(int));
- }
-
- // 输入数组元素
- printf("请输入二维数组的元素:\n");
- for(int i = 0; i < rows; i++) {
- for(int j = 0; j < cols; j++) {
- scanf("%d", &arr[i][j]);
- }
- }
-
- // 打印数组元素
- printf("二维数组的元素为:\n");
- for(int i = 0; i < rows; i++) {
- for(int j = 0; j < cols; j++) {
- printf("%d ", arr[i][j]);
- }
- printf("\n");
- }
-
- // 释放内存
- for(int i = 0; i < rows; i++) {
- free(arr[i]);
- }
- free(arr);
-
- return 0;
- }
复制代码
这段代码首先要求你输入二维数组的行数和列数,然后动态分配内存来创建二维数组。接下来,你需要输入二维数组的元素,然后打印出来。最后,记得释放内存以避免内存泄漏。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
|
|