#include#define DATATYPE float //自定义矩阵的数据类型
int get_limitint(void);
DATATYPE get_float(void);
DATATYPE max_num(DATATYPE *num,int *result,int size);
DATATYPE jueduizhi(DATATYPE);
int main(void)
{
int n,x,y;
int result[2]; //存储 绝对值最大的数字的行下标和列下标
DATATYPE maxnum;
//输入矩阵的长、宽度
n = get_limitint();
//分配内存
DATATYPE *num = (DATATYPE *)malloc(n * n * sizeof(DATATYPE));
/*变长数组的创建
1.如果编译器支持 c99,则可以直接使用变长数组 num[n][n]
2.一维数组模拟二维数组,本程序使用的就是这种方法,优点是简单,缺点是下标不方便
3.数组指针申请二维数组:因为参量 DATATYPE *num[不支持变量] 的原因,无法在函数间传递数据,具体方法参考:
4.二级指针申请二维数组,代码如下:
DATATYPE **num = (DATATYPE **)malloc(n * sizeof(DATATYPE *));
for(y = 0;y 6)
{
printf("输入一个数字(1~6):");
continue;
}
else
return num;
}
}
//输入矩阵,类型限制为浮点数
DATATYPE get_float(void)
{
DATATYPE num;
printf("输入一个浮点数:");
while(scanf("%f",&num) != 1)
{
while(getchar() != '\n')
continue ;
printf("输入一个浮点数:");
}
return num;
}
//最大值及相应的下标,参量为矩阵首元素地址、result【】、长度、宽度
DATATYPE max_num(DATATYPE *num,int *result,int size)
{
int y,x;
DATATYPE maxnum;
maxnum = num[0];
for(y = 0;y 0)?(num):(-num);
return num;
}