c语言二维数组的排序(如何用c语言给输入的二维数组每一行排序)
本文目录
如何用c语言给输入的二维数组每一行排序
可以用stdlib.h中的qsort函数
如果是int a的话
排序第i行
qsort(a,10,sizeof(int),comp);
就可以了,comp是一个比较函数
int comp(c***t void *m1, c***t void *m2){
return *(int*)m1-*(int*)m2;
}
这样就可以排序了,如果要反序,就将comp中的m1和m2互换,可以试试,如果不对可以Hi我
二维数组排序c语言指针问题
#include 《stdio.h》
#include 《stdlib.h》
#define ROW 3
#define COL 4
/* run this program using the c***ole pauser or add your own getch, system("pause") or input loop */
void sort(int a,int n) {
int i,j,k,t;
for(i = 0; i 《 n - 1; ++i) {
k = i;
for(j = k + 1; j 《 n; ++j) {
if(a) k = j;
}
if(i != k) {
t = a;
a;
a = t;
}
}
}
int resort(int (*pa),int row,int col) {
int i;
for(i = 0; i 《 row; ++i) sort(pa,col);
return 1;
}
int main(int argc, char *argv) {
int a;
// int num;
int (*pa);
int i,j;
for(i = 0;i 《 ROW;i++) {
for(j = 0;j 《 COL;j++)
scanf("%d",&a);
}
pa = a;
resort(a,ROW,COL);
for(i = 0;i 《 ROW;i++) {
for(j = 0;j 《 COL;j++)
printf("%3d",a);
printf("\n");
}
return 0;
}
C语言!(二维数组统一排序)
#include 《stdio.h》
void bubble(int *a,int n) /*定义两个参数:数组首地址与数组大小*/
//冒泡
{
int i,j,temp;
for(i=0;i《n-1;i++)
for(j=i+1;j《n;j++) /*注意循环的上下限*/
if(a)
{
temp=a;
a;
a=temp;
}
}
void selectsort(int *a,int n) //选择排序
{
int i,j,k,temp;
for(i=0;i《n-1;i++) {
k=i; /*给记号赋值*/
for(j=i+1;j《n;j++)
if(a) k=j; /*是k总是指向最小元素*/
if(i!=k) { /*当k!=i是才交换,否则a即为最小*/
temp=a;
a;
a=temp;
}
}
}
void quick(int *a,int i,int j) //快排
{
int m,n,temp;
int k;
m=i;
n=j;
k=a; /*选取的参照*/
do {
while(a《k&&m《j) m++; /* 从左到右找比k大的元素*/
while(a》k&&n》i) n--; /* 从右到左找比k小的元素*/
if(m《=n) { /*若找到且满足条件,则交换*/
temp=a;
a;
a=temp;
m++;
n--;
}
}while(m《=n);
if(m《j) quick(a,m,j); /*运用递归*/
if(n》i) quick(a,i,n);
}
void insert(int *a,int n) //插入
{
int i,j,temp;
for(i=1;i《n;i++) {
temp=a; /*temp为要插入的元素*/
j=i-1;
while(j》=0&&temp《a小的数,同时把数组元素向后移*/
a;
j--;
}
a=temp; /*插入*/
}
}
int main()
{
int n,a,i,k;
printf("请输入有多少个数?\n");
scanf("%d",&n);
printf("依次输入数组元素\n");
for (i=0;i《n;i++)
scanf("%d",&a);
printf("请输入1,2,3,4选择排序算法\n");
scanf("%d",&k);
switch(k)
{
case 1:bubble(a,n);break;
case 2:selectsort(a,n);break;
case 3:quick(a,0,n-1);break;
default:insert(a,n);break;
}
printf("结果为\n");
for (i=0;i《n;i++)
printf("%d ",a);
return 0;
}
C语言二维数组怎么按行递增排序
#include《stdio.h》
#include《stdlib.h》
#include《time.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(i != k) {
t = a;
a;
a = t;
}
}
}
void Show(int a,int n) {
int i;
for(i = 0; i 《 n; ++i)
printf("%2d ",a);
printf("\n");
}
int main() {
inti,n = 5,a = {32,56,47,58,95,21,33,56,14,52,46,58,26,9,8,6,56,74,52,54,54,35,66,32,49};
// srand(time(NULL));
printf("排序前:\n");
for(i = 0;i 《 n;i++) {
Show(a,n);
Sort(a,n);
}
printf("\n");
printf("排序后:\n");
for(i = 0;i 《 n;i++) Show(a,n);
printf("\n");
return 0;
}
C语言 二维数组按某一列行进排序
#include 《stdio.h》
typedef struct _student
{
int id;
char name;
float score1;
float score2;
float score3;
float score4;
float score5;
float score_total;
float score_avg;
}student;
int student_swap(student* s1, student* s2)
{
//Add your code here
return 0;
}
float score_sum(student* s, int s_size)
{
float sum = 0.0;
sum = sum + s-》score1;
sum = sum + s-》score2;
sum = sum + s-》score3;
sum = sum + s-》score4;
sum = sum + s-》score5;
return sum;
}
float score_avg(student* s, int s_size)
{
float sum = 0.0;
sum = score_sum(s, s_size);
return sum/s_size;
}
int student_sort(student s, int s_size)
{
for(int n1=0;n1《s_size;n1++)
{
for(int n2=n1+1;n2《s_size;n2++)
{
if(s.score_total)
{
student_swap(&s);
}
}
}
return 0;
}
int main()
{
student s;
for(int n=0;n《5;n++)
{
printf("请输入学生学号:");
scanf("%d", &s.id);
printf("请输入学生姓名:");
scanf("%d", &s.name);
printf("请输入第一门课成绩:");
scanf("%d", &s.score1);
printf("请输入第二门课成绩:");
scanf("%d", &s.score2);
printf("请输入第三门课成绩:");
scanf("%d", &s.score3);
printf("请输入第四门课成绩:");
scanf("%d", &s.score4);
printf("请输入第五门课成绩:");
scanf("%d", &s.score5);
s.score_total = score_sum(s, 5);
s.score_avg = score_avg(s, 5);
printf("总成绩=%f,平均成绩=%f\n", s.score_avg);
}
return 0;
}
更多文章:
miui左面消息(小米怎么开启桌面图标右上角数字提醒 就是比如qq,微信来了消息,桌面图标就会在右上角显示未读消息数)
2026年4月10日 23:20
traceable(NIST是什么NIST-traceable怎么翻译)
2026年4月10日 22:20
c语言二维数组的排序(如何用c语言给输入的二维数组每一行排序)
2026年4月10日 21:40
xml格式资源网(文件夹中出现一个压缩包包含xml后缀的一些文件)
2026年4月10日 20:20




