你题目的解答代码如下:
#include<stdio.h>
#include<stdlib.h>
void sort(int a[],int n)
{
int i,j;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(a[j] > a[j+1])
{
int t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
void linesort(int *a, int y,int x)
{
int i;
for (i = 0; i < y; i++)
sort(a+i*x,x);
}
int* create(int y,int x)
{
int i, j, *a;
a = (int *)malloc(sizeof(int)*x*y);
for (i = 0; i < y; i++)
{
for (j = 0; j < x; j++)
{
scanf("%d", &a[i*x+j]);
}
}
return a;
}
void out(int *a, int y,int x)
{
int i, j;
for (i = 0; i < y; i++)
{
for (j = 0; j < x; j++)
{
printf("%6d", a[i*x+j]);
}
printf("\n");
}
}
void fac(int *a,int *b, int y,int x)
{
int i, j;
for (i = 0; i < y; i++)
{
for (j = 0; j < x; j++)
{
printf("%6d", a[i*x+j]*b[j*y+i]);
}
printf("\n");
}
}
void main(void)
{
int n, m;
int *a , *b;
printf("请输入n:");
scanf("%d", &n);
printf("请输入m:");
scanf("%d", &m);
printf("请输入a数组:\n");
a = create(n,m);
printf("请输入b数组:\n");
b = create(m,n);
linesort(a,n,m);
linesort(b,m,n);
printf("输出a数组:\n");
out(a,n,m);
printf("输出a数组:\n");
out(b,m,n);
printf("输出乘积:\n");
fac(a,b,n,m);
}
如有帮助,望采纳!谢谢!