二维数组排序输出问题请教

来源:百度知道 编辑:UC知道 时间:2024/09/24 01:30:58
我是要将任意输入的二维数组经过从小到大排序后输出。
这个事我自己按照自己的思路写的,请高手指点下这个思路是否正确,然后再就语法上的错误予以指出,谢谢。我是初学者。
#include"iostream.h"
#include"stdio.h"
#include"stdlib.h"
void swap(float arr[][])
{
int i,j,x=0,y=0;
for(i=0;i<arr.size();i++)
{
for(j=0;j<arr[i].size();j++)
{
for(x;x<arr.size();x++)
{
for(y;y<arr[x].size();y++)
{
if(arr[i][j]>arr[x][y])
{
float t;
t=arr[i][j];
arr[i][j]=arr[x][y];
arr[x][y]=t;
}
}
y=j;
}
x=i;
}
}
for(i=0;i<arr.size();i++)
{
for(j=0;j<arr[i].size();j++)
{
printf("%.3f",arr[i][j]);
}
}
}

void main()
{
int i,j;
cout<<"输入二维数组的行列数";
cin>>i>>j;
float a[i][j];
cout<<"输入二维数组的元素";

二维数组必须知道列数,n维数组必须知道n-1维的列数。因为内存分配是一维的,二维及以上必须知道列数,才能在内存分配空间。
const int N=5;
void swap(float arr[][N]) //N一定要为常数

void swap(float *arr[]) //指针数组

void swap(float **arr) //二级指针

至于怎么实现,你可以自己查阅资料,探索一下才有乐趣嘛

float a[i][j];
不能用动态数组,编译错误!

错误很多,我很疑惑,楼主以前学的什么语言,a.size()是哪来的,这个动态数组的写法很有VB的意思,c里面不能这样的

嗯 我来回答吧 其实你想用STL的 因为.SIZE()是STL里的。二维的动态数组其实可以这样定义,int **arry;
还有呀float可以直接比较大小?惊讶!