C语言菜鸟请求好心人解答2

来源:百度知道 编辑:UC知道 时间:2024/05/25 08:02:49
这是一个把一个二维数组从新排列的问题,从小到大排,然后输出,请问错在什么地方,怎么修改。
#include<stdio.h>

void bijiao(int array[][4],int n)
{
int i,c,o,s,b;
for(i=0;i<n;i++)
for(c=0,o=c+1,s=i;c<4;c++)
{if(c=3){s=s+1;o=0;}
if(array[i][c]>array[s][o])
{b=array[i][c];
array[i][c]=array[s][o];
array[s][o]=b;}
}
void main()
{
int array[3][4]={{21,887,54,65},{54,66,81,655},{12,34,221,577}};
int x,y;
bijiao(array,3)
for(x=0;x<3;x++)
{for(y=0;y<4;y++)
printf("%d,",array[x][y]);
printf("\n");}
}
错误提示:--------------------Configuration: Cpp1 - Win32 Debug--------------------
Compiling...
Cpp1.cpp
C:\Documents and Settings\Administrator\Cpp1.cpp(15) : error C2601: 'main' : local function definitions are illegal
C:\Documents and Settings\Administrator\Cpp1.cpp(24) : fatal error C1004: unexpected end of file found
执行

你想怎么排?全从小到大还是每行排?如果全从小到大你的算法就错误.看不明白你是什么算法.

#include<stdio.h>

void bijiao(int array[][4],int n) //此程序经过修改,是按行排序.你的我没看懂.
{
int i,c,s,b;
for(i=0;i<n;i++)//一行一行排,共n行
{for(c=0,s=1;c<3;c++,s++)//s为c后面那个元素,s与c进行比较,并适时换位,这是冒泡法排序
if(array[i][c]>array[i][s])
{b=array[i][c];
array[i][c]=array[i][s];
array[i][s]=b;}
}
}//此处少了右半大括号.
void main()
{
int array[3][4]={{21,887,54,65},{54,66,81,655},{12,34,221,577}};
int x,y;
bijiao(array,3);//少一个分号
for(x=0;x<3;x++)
{for(y=0;y<4;y++)
printf("%d,",array[x][y]);
printf("\n");}
}