Let A be an n × n matrix of integers, n being an odd number. Write a C program that does the following tasks for n = 25: 1.Read from the keyboard the elements of matrix A, and then print this matrix row by row on the screen. 2. Write a function that sorts a list of n integers in increasing order. Then use this function to sort in increasing order the odd rows of matrix A, in decreasing order the even rows of matrix A, and print row by row the resulting matrix A.
n 要输入5,就是n*n=25的矩阵
不应该是n=25
如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢。
是否可以翻译为中文呢?看着有点累。
这个简单啊,我来写下吧
#include<stdio.h>
//2.编写一个函数,按递增顺序对n个整数的列表进行排序。
void sort(int a[],int n,int s)
{
int i,j,t;
//接下来进行排序
for(i=0;i<n-1;++i)//n个数,总共需要进行n-1次
{ //n-1个数排完,第一个数一定已经归位
//每次会将最大(升序)或最小(降序)放到最后面
for(j=0;j<n-i-1;++j)
{
if(s==0 && a[j]>a[j+1] || s==1 && a[j]<a[j+1])//每次冒泡,进行交换
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
return 0;
}
int main()
{
int n,i,j;
scanf("%d", &n); //输入n 比如输入5,就是n*n=25的矩阵
int a[n][n];
//1.从键盘读取矩阵a的元素,
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
scanf("%d", &a[i][j]);
}
}
//在屏幕上逐行打印该矩阵。
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
printf("%5d", a[i][j]);
}
printf("\n");
}
printf("\n");
//然后使用此函数对矩阵A的奇数行按升序排序,对矩阵A的偶数行按降序排序
for(i = 0; i < n; i++)
{
sort(a[i],n,i%2);
}
//行打印得到的矩阵A
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
printf("%5d", a[i][j]);
}
printf("\n");
}
}
testing is not fun. needs to enter 25 x 25 = 625 numbers
#include <stdio.h>
#define N 5
int ascending(int x, int y)
{
return x <= y ? 1 : 0;
}
int descending(int x, int y)
{
return ascending(y, x);
}
void sort(int l[], int n, int (*order)(int,int))
{
int i, j;
for (i = 0; i < n; ++i)
for (j = i + 1; j < n; ++j)
if (!order(l[i], l[j]))
{
int t = l[i];
l[i] = l[j];
l[j] = t;
}
}
int main()
{
int a[N][N];
int i, j;
int (*order)(int,int);
printf("Please enter %d x %d matrix: \n", N, N);
for (i = 0; i < N; ++i)
{
for (j = 0; j < N; ++j)
scanf("%d", &a[i][j]);
}
printf("Original matrix:\n");
for (i = 0; i < N; ++i)
{
for (j = 0; j < N; ++j)
printf("%4d", a[i][j]);
printf("\n");
}
// sorting
for (i = 0; i < N; ++i)
{
order = i % 2 == 0 ? ascending : descending;
sort(a[i], N, order);
}
printf("Sorted matrix: \n");
for (i = 0; i < N; ++i)
{
for (j = 0; j < N; ++j)
printf("%4d", a[i][j]);
printf("\n");
}
return 0;
}
// Output
Please enter 5 x 5 matrix:
1 3 4 10 11 2 8 1 0 7 7 13 10 24 12 19 2 22 21 8 16 7 99 17 9
Original matrix:
1 3 4 10 11
2 8 1 0 7
7 13 10 24 12
19 2 22 21 8
16 7 99 17 9
Sorted matrix:
1 3 4 10 11
8 7 2 1 0
7 10 12 13 24
22 21 19 8 2
7 9 16 17 99
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632