定义一个动态二维数组,从键盘输入行数和列数,然后给二维数组元素赋值,并输出该二维数组。求代码

如题所述

// 方法一,需要编译器支持C99及以上标准
/*
#include<stdlib.h>
#include<stdio.h>
int main()
{
int i, j;
int row, col;
scanf("%d%d", &row, &col);
int nums[row][col];
for(i = 0; i < row; i++)
for(j = 0; j < col; j++)
{
scanf("%d", &nums[i][j]);
}
for(i = 0; i < row; i++)
{
for(j = 0; j < col; j++)
{
printf("%d ", nums[i][j]);
}
putchar('\n');
}
return 0;
}*/
// 方法二,通用动态内存
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int main()
{
int **nums;
int i, j;
int row, col;
scanf("%d%d", &row, &col);
nums = (int **)malloc(sizeof(int *)*row);
for(i = 0; i < row; i++)
{
nums[i] = (int *)malloc(sizeof(int)*col);
for(j = 0; j < col; j++)
{
scanf("%d", &nums[i][j]);
}
}
for(i = 0; i < row; i++)
{
for(j = 0; j < col; j++)
{
printf("%d ", nums[i][j]);
}
free(nums[i]);
putchar('\n');
}
free(nums);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答