二维数组从大到小排序(C语言程序题,根据二维数组第二个数的大小排序从小到大)

本文目录
- C语言程序题,根据二维数组第二个数的大小排序从小到大
- C++编程:按照二维数组的第一行从大到小排序,每列相应各行跟着第一行移动
- C#中二维数组怎么排序
- C语言 对二维数组a【5】【10】进行从大到小排序 我是新手,代码越简单越好
- 如何对二维数组进行排序
- vb中将二维数组中每一列的元素从小到大排序
- 输入一个二维数组(5*5),每一列按从小到大排列输出,每一行按从大到小排列输出.求程序
C语言程序题,根据二维数组第二个数的大小排序从小到大
#include 《stdio.h》
void sort(int a,int n) {
int i,j,k,t;
for(i = 0; i 《 n - 1; ++i) {
k = i;
for(j = i + 1; j 《 n; ++j) {
if(a)
k = j;
}
if(k != i) {
for(j = 0; j 《 2; ++j) {
t = a;
a;
a = t;
}
}
}
}
int main() {
int a = {1,3,3,4,0,7,3,8,15,19,15,20,10,15,8,18,6,12,5,10,4,14,2,9};
int i,j;
printf("排序前:\n");
for(i = 0; i 《 12; ++i) {
for(j = 0; j 《 2; ++j)
printf("%4d",a);
printf("\n");
}
sort(a,12);
printf("排序后:\n");
for(i = 0; i 《 12; ++i) {
for(j = 0; j 《 2; ++j)
printf("%4d",a);
printf("\n");
}
return 0;
}
C++编程:按照二维数组的第一行从大到小排序,每列相应各行跟着第一行移动
//#include "stdafx.h"//vc++6.0加上这一行.
#include 《iostream》
using namespace std;
int main(void){
double a={{3,1,5},{0.3,0.5,0.1},{1,0,2},{0,1,1}},tmp;
int i,j,k,l;
for(i=0;i《3;i++){
for(k=i,j=k+1;j《3;j++)
if(a) k=j;
if(k!=i)
for(l=0;l《4;l++){
tmp=a;
a;
a=tmp;
}
}
for(i=0;i《4;i++){
for(j=0;j《3;cout 《《 a 《《 ’\t’);
cout 《《 endl;
}
return 0;
}
C#中二维数组怎么排序
//冒泡法排序
#include《stdio.h》
void
main()
{
int
a;
//定义一个数组既它的元素为10
int
i,j,temp;
//定义3个变量
printf("输入10个整数:\n\a");
for(i=0;i《10;i++)
scanf("%d",&a);
//依次输入10个整数
for(i=0;i《9;i++)
//进行9轮排序
{
for(j=0;j《9-i;j++)
//每轮进行9-i次交换
if(a)
{
temp=a;
a;
//大的沉底,小的上浮
a=temp;
}
}
printf("排序结果:");
for(i=0;i《10;i++)
//依次输出排序结果
printf("%d\t
",a);
}
随便输入几个数,然后按从小到大或者是从大到小的顺序排列
输入五个数,按从小到大的顺序排列
//从小到大排列
#include《stdio.h》
void
main()
{
int
i,j,a,temp;
for(i=0;i《5;i++)
{
printf("please
input
a
number
a=",i);
scanf("%d",&a);
}
for(i=4;i》0;i--)
{
for(j=4;j》4-i;j--)
{
if(a)
{
temp=a;
a;
a=temp;
}
}
}
for(i=0;i《5;i++)
printf("%d\t",a);
}
从大到下就是将语句"if(a)"即可
程序分析
冒泡法顾名思义就是将一个数从下面浮上来,假设有5个数,21
56
87
6
9,
将第五个元素的值与第四个元素的值相比,如果第五个元素的值小于第四个元素的值,则交换着两个元素的值。
接下来,将第四个元素的值与第三个元素的值进行比较,按照类似的方式,如果发现下面元素的值小于上面元素的值,则交换着两个值。
将第三个元素的值与第二个元素的值比较,做同样的工作。
在这一轮比较结束时,最小值将到达最上面,可以说最小值已经浮到最上面
第二轮,从最底部的元素开始比较,直到第二个元素,因为第一个已经是最小,不需要再进行比较。
其实,就是一个for循环,最外面的循环控制循环的次数,需要有n-1次循环
固定为for(i=n-1;i》0;i--)
里面的循环从最大值开始,次数为n-1-i,
固定为for(j=n-1;j》n-1-i;j--)
循环体就是
if(a)
{temp=a;
a;
a=temp;
}
直接套用即可
字符串的比较也是一样,这里不再罗嗦
例:将dcaeb
按字母顺序排列
#include
《stdio.h》
#include
《string.h》
#define
N
6
void
string_cmp(char
*p)
{
int
i,j;
char
o;
for(i=0;i
《N-1;i++)
{
for(j=i+1;j
《N-1;j++)
{
//if(*(p+i)》
*(p+j))
if(strcmp((p+i),(p+j))》
0)
{
o=*(p+i);
*(p+i)=*(p+j);
*(p+j)=o;
}
}
}
}
main()
{
int
i;
char
a=
"dcaeb
";
string_cmp(a);
for(i=0;i
《(N-1);i++)
printf(
"%c
",a);
printf(
"\n
");
getch();
}
C语言 对二维数组a【5】【10】进行从大到小排序 我是新手,代码越简单越好
#include 《stdio.h》
int main()
{
int i,j,t,k=0,a;
for(i=0;i《5;i++)
for(j=0;j《10;j++)
{
scanf("%d",&a);
b;k++;
}
for(i=0;i《49;i++)
for(j=i+1;j《50;j++)
if(b)
{t=b=t;}
k=0;
for(i=0;i《5;i++)
{
for(j=0;j《10;j++)
{
a;
k++;
printf("%d ",a);
}
printf("\n");
}
return 0;
}
如何对二维数组进行排序
在C语言中,二维数组按行存储,对每一行排序很方便,可以把每一行当成一个一维数组,使用排序函数直接进行排序。
然而对每一列进行排序,就不能直接当成一维数组进行排序。但是仍然可以把第j列a在逻辑上当成一维数组进行排序,下面以使用冒泡排序为例对其排序。
对二维数组按列排序后,进一步展示了如何调用快速排序函数按行进行排序。
程序源码:
#include 《stdio.h》#include 《stdlib.h》 #define M 3#define N 3 //输出二维数组的函数void print(int a),cmp); } printf("按列排序后再按行排序后二维数组变为:\n"); print(a); printf("\n"); system("pause"); return 0;}
编译运行后的结果如下:
vb中将二维数组中每一列的元素从小到大排序
Private Sub Command1_Click()
Dim a(1 To 10) As Integer
Dim i As Integer
Dim j As Integer
Dim k As Integer
Picture1.Cls
Picture2.Cls
Randomize
’产生10个二位随机整数,并在Picture1输出
For i = 1 To 10
a(i) = Int(Rnd * 90) + 10
Picture1.Print a(i);
Next
’选择法排序
For i = 1 To 9
j = i
For k = i + 1 To 10
If a(j) 》 a(k) Then j = k
Next
If i 《》 j Then
k = a(i)
a(i) = a(j)
a(j) = k
End If
Next
’在Picture2输出排序后的数组
For i = 1 To 10
Picture2.Print a(i);
Next
End Sub
输入一个二维数组(5*5),每一列按从小到大排列输出,每一行按从大到小排列输出.求程序
#include《stdio.h》
main()
{int i,j;
int temp,k;
int a;
for(i=0;i《5;i++)
for(j=0;j《5;j++)
scanf("%d",&a);
for(i=0;i《5;i++)
{for(j=0;j《5;j++)
printf("%5d",a);
printf("\n");
}
printf("\n");
for(k=0;k《4;k++)
{for(j=0;j《5;j++)
for(i=0;i《4-k;i++)
if(a)
{
temp=a;
a;
a=temp;
}
for(i=0;i《5;i++)
for(j=0;j《4-k;j++)
if(a)
{
temp=a;
a;
a=temp;
}
}
for(i=0;i《5;i++)
{for(j=0;j《5;j++)
printf("%5d",a);
printf("\n");
}
}
兄弟你看一下是不是的

更多文章:
js 数组map(js中以(_,1)做为传给map遍历函数的参数是什么意思)
2026年8月5日 21:00
background属性可以继承吗(CSS中的color\background-color有什么区别)
2025年11月29日 17:30
js jquery面试(jquery中怎么调用js方法调用)
2025年8月8日 03:45
evaluate带文字求值(Excel表格的单元格中有文字,以及多组数据,如何自动计算公式)
2026年2月26日 16:45
网页如何控制wordpress的侧栏显示内容?系统的数据处理的功能有哪些
2025年12月10日 12:30
perl读取文件(perl中怎么获取当前pl文件所在文件夹)
2026年1月17日 18:45
安装instantclient(instantclient-basic-win64-11.2.0.1.0怎么安装)
2025年10月11日 06:45
java中xml文件是干什么的(java开发,你在项目中哪些地方用到了XML)
2025年10月11日 01:00
divisional是什么意思(under one’s command是什么意思)
2025年9月8日 04:30
css游戏按钮(CSS一按WASD键就(CS起源游戏问题!!))
2026年6月29日 12:45
怎么看php是否加密(PHP如何判断RAR文件是否已经加密)
2026年8月30日 04:30
duplicate sample(酶标仪怎么设置三个重复样品)
2025年11月3日 14:45
window telnet服务打不开(如何开启telnet服务)
2025年10月27日 03:30
plc梯形图100实例详解pdf(红绿灯的plc程序和梯形图求)
2026年3月12日 01:15
shell递归遍历文件夹(shell脚本文件夹内文件依次执行)
2025年8月28日 06:30
seek doing(用seek doing造句 表示要求做)
2026年2月4日 13:15








